合并2个不同的mysql表

时间:2015-05-05 21:45:10

标签: mysql join

我有两张桌子:

Table a:
+----+------+
| id | data |
+----+------+
|  1 | 450  |
|  2 | 500  |
|  3 | 550  |
|  4 | 600  |
|  5 | 650  |
+----+------+

Table b:
+----+------+------+
| id | a_id | note |
+----+------+------+
|  1 |    2 |   25 |
|  2 |    5 |   10 |
+----+------+------+

我需要一个返回一个表的查询,该表包含来自table a的每一行和来自table b的注释。我希望0填写一行中没有注释的地方。我希望它看起来像这样:

+----+------+------+
| id | data | note |
+----+------+------+
|  1 | 450  |    0 |
|  2 | 500  |   25 |     
|  3 | 550  |    0 |
|  4 | 600  |    0 |
|  5 | 650  |   10 |
+----+------+------+

我该怎么做?

2 个答案:

答案 0 :(得分:1)

select a.id, a.data, coalesce(b.note, 0) as note
from a
left join b on a.id = b.a_id

答案 1 :(得分:0)

你在寻找什么称为LEFT / RIGHT JOIN。 This问题将为您提供有关其内容的更多详细信息。

假设您有一个类似的查询:

SELECT * FROM a LEFT JOIN b ON some_condition;

然后,它的输出将包含表a中的每一行,以及满足条件的表b中的数据。对于不满足条件的行,包含b数据的列将包含null。