合并具有相同行的2个mysql表

时间:2013-02-28 09:07:10

标签: mysql sql

我有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

1 个答案:

答案 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