Die korrekte Syntax für den Update einer Tabelle auf Basis einer zweiten Tabelle sieht wie folgt aus:
Code:
Update YourTable a
set YourColumn = (Select Distinct YourNextColumn
From NextTable b
Where a.Key1 = b.Key1
and a.Key2 = b.Key2
...
and a.KeyN = b.KeyN)
Where Exists (Select *
from NextTable c
Where a.Key1 = c.Key1
and a.Key2 = c.Key2
...
and a.KeyN = c.KeyN);
Dadurch wird sichergestellt, dass für jeden Datensatz aus der ersten Datei genau ein Datensatz aus der zweiten Datei gefunden wird. Fehlen Datensätze in der ersten Datei oder der zweiten Datei, werden diese elimiert bzw. erfolgt kein Update auf den entsprechenden Satz.
Damit ist eine explizite Konvertierung von NULL-Werten mittels COALESCE oder IFNULL nicht erforderlich.
Doppelte Datensätze werden ebenfalls vermieden.
Birgitta
Bookmarks