UPDATE t1
LEFT JOIN
t2
ON t2.id = t1.id
SET t1.col1 = newvalue
WHERE t2.id IS NULL
Beachten Sie das für ein SELECT
es wäre effizienter, NOT IN
zu verwenden / NOT EXISTS
Syntax:
SELECT t1.*
FROM t1
WHERE t1.id NOT IN
(
SELECT id
FROM t2
)
Einzelheiten zur Leistung finden Sie im Artikel in meinem Blog:
- Unvollständige Bestellungen finden
:Leistung von
LEFT JOIN
im Vergleich zuNOT IN
Leider MySQL
erlaubt nicht die Verwendung der Zieltabelle in einer Unterabfrage in einem UPDATE
-Anweisung, deshalb müssen Sie sich an den weniger effizienten LEFT JOIN
halten Syntax.