Wenn zwischen t1 und t2 oder zwischen t2 und t3 eine 1:n-Beziehung besteht, erhalten Sie viele Übereinstimmungen für jede Zeile in t1. Wenn Sie wissen, dass alle Zeilen in t3, die zur selben Zeile in t1 gehören, denselben Wert in d haben, dann können Sie DISTINCT
verwenden um (identische) Duplikate zu entfernen.
UPDATE table1 t1
SET t1.c = (select DISTINCT t3.d
from table2 t2, table3 t3
where t2.b = t3.b and t1.a = t2.a)
WHERE EXISTS ( SELECT 1 FROM table2 t2, table3 t3 WHERE t1.c = t3.c and t1.a = t2.a);