2013-02-28 3 views
2

У меня есть две таблицы mysql с одинаковыми строками, на обеих таблицах отсутствует какая-то информация, и теперь мне нужно объединить две таблицы в одну таблицу с полной информацией.Слияние двух таблиц mysql с одинаковыми строками

Это как таблица выглядит следующим образом:

Table1:

Name | Adres  | Postal 
------------------------------ 
Koen | Stationsweg | 
    | Marktplein | 4342FG 

Таблица 2:

Name | Adres  | Postal 
------------------------------ 
    | Stationsweg | 4368RT 
Bert | Marktplein | 

Финальный стол должен выглядеть следующим образом:

Name | Adres  | Postal 
------------------------------ 
Koen | Stationsweg | 4368RT 
Bert | Marktplein | 4342FG 

ответ

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 
+0

я пытался перевести свой комментарий - * Спасибо за ответ! теперь он исправлен. * Правильно ли это? Если да, то приветствую ': D' –