S'il existe une relation un-à-plusieurs entre t1 et t2 ou entre t2 et t3, vous obtiendrez de nombreuses correspondances pour chaque ligne de t1. Si vous savez que toutes les lignes de t3 qui appartiennent à la même ligne de t1 ont la même valeur dans d, alors vous pouvez utiliser DISTINCT
pour supprimer les doublons (identiques).
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);