UPDATE t1
LEFT JOIN
t2
ON t2.id = t1.id
SET t1.col1 = newvalue
WHERE t2.id IS NULL
Имайте предвид, че за SELECT
би било по-ефективно да използвате NOT IN
/ NOT EXISTS
синтаксис:
SELECT t1.*
FROM t1
WHERE t1.id NOT IN
(
SELECT id
FROM t2
)
Вижте статията в моя блог за подробности за ефективността:
- Намиране на непълни поръчки
:изпълнение на
LEFT JOIN
в сравнение сNOT IN
За съжаление, MySQL
не позволява използването на целевата таблица в подзаявка в UPDATE
изявление, ето защо ще трябва да се придържате към по-малко ефективно LEFT JOIN
синтаксис.