Mysql
 sql >> Baza danych >  >> RDS >> Mysql

AKTUALIZUJ wiele tabel w MySQL za pomocą LEFT JOIN

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

Zauważ, że dla SELECT bardziej wydajne byłoby użycie NOT IN / NOT EXISTS składnia:

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

Zobacz artykuł na moim blogu, aby uzyskać szczegółowe informacje na temat wydajności:

Niestety, MySQL nie pozwala na użycie tabeli docelowej w podzapytaniu w UPDATE oświadczenie, dlatego musisz trzymać się mniej wydajnego LEFT JOIN składnia.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak WYBRAĆ najnowsze cztery pozycje w kategorii?

  2. Zmień i zresetuj hasło roota MySQL

  3. Jak używać GROUP BY do łączenia ciągów w MySQL?

  4. Biblioteka nie załadowana:błąd libmysqlclient.16.dylib podczas próby uruchomienia 'rails server' na OS X 10.6 z mysql2 gem

  5. Zainstaluj MySQL na Ubuntu bez pytania o hasło