Hvis der er et en-til-mange forhold mellem t1 og t2 eller mellem t2 og t3 vil du få mange matcher for hver række i t1. Hvis du ved, at alle rækker i t3, der hører til den samme række i t1, har samme værdi i d, så kan du bruge DISTINCT
for at fjerne (identiske) dubletter.
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);