sql >> Databáze >  >> RDS >> Mysql

AKTUALIZUJTE více tabulek v MySQL pomocí LEFT JOIN

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

Všimněte si, že pro SELECT efektivnější by bylo použít NOT IN / NOT EXISTS syntaxe:

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

Podrobnosti o výkonu najdete v článku na mém blogu:

Bohužel MySQL neumožňuje použití cílové tabulky v poddotazu v UPDATE prohlášení, proto se budete muset držet méně efektivního LEFT JOIN syntaxe.



  1. 3 způsoby, jak vypsat všechny spouštěče pro danou tabulku v PostgreSQL

  2. Java JDBC:data konzistentně dva dny volna

  3. Převeďte VARCHAR2 na číslo

  4. Oracle - ORA-01489:výsledek zřetězení řetězců je příliš dlouhý