UPDATE t1
LEFT JOIN
t2
ON t2.id = t1.id
SET t1.col1 = newvalue
WHERE t2.id IS NULL
Observera att för en SELECT det skulle vara mer effektivt att använda NOT IN / NOT EXISTS syntax:
SELECT t1.*
FROM t1
WHERE t1.id NOT IN
(
SELECT id
FROM t2
)
Se artikeln i min blogg för information om prestanda:
- Hittar ofullständiga beställningar
:prestanda för
LEFT JOINjämfört medNOT IN
Tyvärr, MySQL tillåter inte användning av måltabellen i en underfråga i en UPDATE uttalande, det är därför du måste hålla dig till mindre effektiva LEFT JOIN syntax.