Chciałbym skonstruować takie zapytanie, które uaktualni (bądź opcjonalnie dołączy na końcu) wartości w tabeli 1 wg tabeli 2, jeśli w niej występują.
Na przykładzie, z tabel:
Kod
table1:
+----+---------+---------+---------+
| id | column1 | column2 | column3 |
+----+---------+---------+---------+
| 1 | A | B | C |
| 2 | D | E | F |
| 3 | G | H | I |
+----+---------+---------+---------+
table2:
+----+---------+
| id | column2 |
+----+---------+
| 1 | ZZZ |
| 3 | XXX |
+----+---------+
+----+---------+---------+---------+
| id | column1 | column2 | column3 |
+----+---------+---------+---------+
| 1 | A | B | C |
| 2 | D | E | F |
| 3 | G | H | I |
+----+---------+---------+---------+
table2:
+----+---------+
| id | column2 |
+----+---------+
| 1 | ZZZ |
| 3 | XXX |
+----+---------+
...chcę otrzymać wynik:
Kod
+----+---------+---------+---------+
| id | column1 | column2 | column3 |
+----+---------+---------+---------+
| 1 | A | ZZZ | C |
| 2 | D | E | F |
| 3 | G | XXX | I |
+----+---------+---------+---------+
| id | column1 | column2 | column3 |
+----+---------+---------+---------+
| 1 | A | ZZZ | C |
| 2 | D | E | F |
| 3 | G | XXX | I |
+----+---------+---------+---------+
Prawie dobrze w tym przypadku działa zwykłe LEFT JOIN, jednak z tym problemem (pomijając, że nie nadpisuje kolumny, tylko dopisuje na końcu nową o tej samej nazwie, ale to jeszcze da się przeżyć), że działa tylko przy
SELECT * FROM table1 LEFT JOIN table2 USING(id)
natomiast ja chciałbym w SELECT wyszczególniać nazwy kolumn do pobrania, a wówczas niestety otrzymuję błąd:
Kod
Column 'column2' in field list is ambiguous
Jakieś pomysły?
Z góry dziękuję
