sql >> Databasteknik >  >> RDS >> Mysql

UPPDATERA flera tabeller i MySQL med LEFT JOIN

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:

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.



  1. Exportera Oracle-frågeresultat till en HTML-fil när du använder SQLcl

  2. MySQL - Styr vilken rad som returneras av en grupp av

  3. Dela en partition i två i SQL Server (T-SQL)

  4. Installera SQL Server 2019 på en Mac