UPDATE t1
LEFT JOIN
t2
ON t2.id = t1.id
SET t1.col1 = newvalue
WHERE t2.id IS NULL
Lưu ý rằng đối với một SELECT sẽ hiệu quả hơn nếu sử dụng NOT IN / NOT EXISTS cú pháp:
SELECT t1.*
FROM t1
WHERE t1.id NOT IN
(
SELECT id
FROM t2
)
Xem bài viết trong blog của tôi để biết chi tiết về hiệu suất:
- Tìm đơn đặt hàng chưa hoàn thành
:hiệu suất của
LEFT JOINso vớiNOT IN
Thật không may, MySQL không cho phép sử dụng bảng đích trong truy vấn con trong UPDATE , đó là lý do tại sao bạn cần sử dụng LEFT JOIN kém hiệu quả hơn cú pháp.