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に固執する必要がある理由です 構文。