2

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

1 回答 1

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
于 2013-02-28T09:09:31.490 回答