2

同じ行を持つ 2 つの mysql テーブルがあり、両方のテーブルで一部の情報が欠落しており、2 つのテーブルを完全な情報を持つ 1 つのテーブルにマージする必要があります。

テーブルは次のようになります。

表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 に答える