Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

UPDATE beberapa tabel di MySQL menggunakan LEFT JOIN

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

Perhatikan bahwa untuk SELECT akan lebih efisien menggunakan NOT IN / NOT EXISTS sintaks:

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

Lihat artikel di blog saya untuk detail performa:

Sayangnya, MySQL tidak mengizinkan penggunaan tabel target dalam subkueri dalam UPDATE pernyataan, itu sebabnya Anda harus tetap menggunakan LEFT JOIN yang kurang efisien sintaks.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memilih dari dua tabel di MySQL meskipun tidak semua baris dalam satu tabel memiliki koresponden di tabel lainnya?

  2. Mengapa kolom teks tidak dapat memiliki nilai default di MySQL?

  3. Pengelompokan ke dalam interval 5 menit dalam rentang waktu

  4. Levenshtein:MySQL + PHP

  5. kesalahan sintaks readyStatement