sql >> Database >  >> RDS >> Mysql

UPDATE meerdere tabellen in MySQL met LEFT JOIN

UPDATE  t1
LEFT JOIN
        t2
ON      t2.id = t1.id
SET     t1.col1 = newvalue
WHERE   t2.id IS NULL

Merk op dat voor een SELECT het zou efficiënter zijn om NOT IN . te gebruiken / NOT EXISTS syntaxis:

SELECT  t1.*
FROM    t1
WHERE   t1.id NOT IN
        (
        SELECT  id
        FROM    t2
        )

Zie het artikel in mijn blog voor prestatiedetails:

Helaas, MySQL staat het gebruik van de doeltabel niet toe in een subquery in een UPDATE verklaring, daarom moet je je houden aan minder efficiënte LEFT JOIN syntaxis.



  1. Vermijd duplicaten in INSERT INTO SELECT-query in SQL Server

  2. INSERT a SELECT GROUP BY :meer doelkolommen dan expressies fout

  3. Foreign Key naar meerdere tabellen

  4. Hoe zie ik alle externe sleutels van een tabel of kolom?