Điều này là do bạn đang cố gắng đặt column3
đến một kết quả trả về và SQL dự kiến rằng đó chỉ là một giá trị (vô hướng). Công cụ SQL bị nhầm lẫn khi bạn chuyển cho nó nhiều hơn một giá trị trả về (nó nên sử dụng giá trị nào? ... nó không giả sử lặp lại qua các kết quả). Vì vậy, nếu bạn muốn cập nhật toàn bộ tập kết quả, thì bạn cần tạo một bảng con từ bạn truy vấn và tham gia vào đó. Truy vấn của bạn sẽ trông giống như thế này
UPDATE Table3
SET Column3 = subtable.value
FROM Table3
JOIN (
select t2.column3+t1.column3 as value, t1.id
from table2 t2 with (nolock) join table1 t1
on table2.id=t1.id
where table2.id IN (100,101)
) AS subtable
ON subtable.id = Table3.id
WHERE table3.id IN (100, 101)
Theo giả định rằng table3.id khớp với id khác, bạn cũng thực sự không cần where table2.id IN ...