Nếu có mối quan hệ một-nhiều giữa t1 và t2 hoặc giữa t2 và t3, bạn sẽ nhận được nhiều kết quả phù hợp cho mỗi hàng trong t1. Nếu bạn biết rằng tất cả các hàng trong t3 thuộc cùng một hàng trong t1 có cùng giá trị trong d, thì bạn có thể sử dụng DISTINCT
để loại bỏ các bản sao (giống hệt nhau).
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);