我有 table1 和 table2 如下
表1
first_name | last_name | t1_id
表2
T2_id | color | length
Table1 可能有一个 id 值在 Table2 id 中不存在,但它有时可能存在。我想编写一个给出以下结果的查询: 名字 |姓氏 | t1_id |颜色 |长度 如果表 2 中不存在 id 值,则结果应如下所示:
First_name | last_name | t1_id | color | length
-----------------------------------------------
Johan | Mike | 33 | - | -
我的尝试:
SELECT first_name,
last_name,
t1_id,
color,
length
FROM Table1, Table2
WHERE t1_id = t2_id
但是当 t1_id
的值只存在于 t2_id
中时,这显示结果。
最佳答案
使用 LEFT
联接从第一个表中获取所有行,即使它们的关联不存在于第二个表中也是如此
SELECT first_name,
last_name,
t1_id,
color,
length
FROM Table1
LEFT JOIN Table2 ON t1_id = t2_id
如果列为空,您可以使用 COALESCE(column,'-')
显示 -
SELECT first_name,
last_name,
t1_id,
COALESCE(color,'-'),
COALESCE(length,'-')
FROM Table1
LEFT JOIN Table2 ON t1_id = t2_id
关于mysql - 如果找不到匹配项,如何追加列数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47977588/