sql >> Database teknologi >  >> RDS >> Mysql

OPDATERE flere tabeller i MySQL ved hjælp af LEFT JOIN

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

Bemærk, at for en SELECT det ville være mere effektivt at bruge NOT IN / NOT EXISTS syntaks:

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

Se artiklen i min blog for detaljer om ydeevne:

Desværre, MySQL tillader ikke brug af måltabellen i en underforespørgsel i en UPDATE erklæring, det er derfor, du bliver nødt til at holde dig til mindre effektive LEFT JOIN syntaks.



  1. java - passerer array i oracle-lagret procedure

  2. MySQL Tutorial – Forstå sekunderne bag Master Value

  3. Sådan opretter du en tom database i Access 2016

  4. SQL RANK() versus ROW_NUMBER()