Se esiste una relazione uno-a-molti tra t1 e t2 o tra t2 e t3, otterrai molte corrispondenze per ogni riga in t1. Se sai che tutte le righe in t3 che appartengono alla stessa riga in t1 hanno lo stesso valore in d, puoi usare DISTINCT
per rimuovere i duplicati (identici).
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);