Si hay una relación de uno a muchos entre t1 y t2 o entre t2 y t3, obtendrá muchas coincidencias para cada fila en t1. Si sabe que todas las filas en t3 que pertenecen a la misma fila en t1 tienen el mismo valor en d, entonces puede usar DISTINCT
para eliminar duplicados (idénticos).
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);