Ако има връзка едно към много между t1 и t2 или между t2 и t3, ще получите много съвпадения за всеки ред в t1. Ако знаете, че всички редове в t3, които принадлежат на един и същи ред в t1, имат една и съща стойност в d, тогава можете да използвате DISTINCT
за премахване на (идентични) дубликати.
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);