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