Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

CẬP NHẬT nhiều bảng trong MySQL bằng LEFT JOIN

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

Lưu ý rằng đối với một SELECT sẽ hiệu quả hơn nếu sử dụng NOT IN / NOT EXISTS cú pháp:

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

Xem bài viết trong blog của tôi để biết chi tiết về hiệu suất:

Thật không may, MySQL không cho phép sử dụng bảng đích trong truy vấn con trong UPDATE , đó là lý do tại sao bạn cần sử dụng LEFT JOIN kém hiệu quả hơn cú pháp.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn MySql nâng cao:Cập nhật bảng với thông tin từ một bảng khác

  2. Sự cố với các loại nội dung khi tải một vật cố định trong Django

  3. Cách chuyển các hàng trong bảng mysql thành cột

  4. Bật kết nối MySQL từ xa:LỖI 1045 (28000):Quyền truy cập bị từ chối đối với người dùng

  5. Cách nhận dữ liệu một tháng trước trong MySQL