Mysql
 sql >> Datenbank >  >> RDS >> Mysql

UPDATE mehrere Tabellen in MySQL mit LEFT JOIN

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:

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.