我有2个具有相同行的mysql表,在这两个表上缺少一些信息,现在我需要将这两个表合并到一个表中并提供完整的信息。
这就是表格的样子:
表1:
Name | Adres | Postal
------------------------------
Koen | Stationsweg |
| Marktplein | 4342FG
表2:
Name | Adres | Postal
------------------------------
| Stationsweg | 4368RT
Bert | Marktplein |
决赛桌需要看起来像:
Name | Adres | Postal
------------------------------
Koen | Stationsweg | 4368RT
Bert | Marktplein | 4342FG
答案 0 :(得分:2)
SELECT MAX(COALESCE(a.Name, b.name)) name,
a.adres,
MAX(COALESCE(a.postal, b.postal)) postal
FROM table1 a
LEFT JOIN table2 b
ON a.adres = b.adres
GROUP BY a.adres
如果您希望插入上述查询的结果,请在另一个表格中说明:table3
,使用INSERT INTO...SELECT
INSERT INTO table3 (name, adres, postal)
SELECT MAX(COALESCE(a.Name, b.name)) name,
a.adres,
MAX(COALESCE(a.postal, b.postal)) postal
FROM table1 a
LEFT JOIN table2 b
ON a.adres = b.adres
GROUP BY a.adres