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

MySQL:Cập nhật tất cả các hàng trong bảng kết quả khớp với một truy vấn khác

Sử dụng truy vấn con

Tùy chọn được hỗ trợ rộng rãi nhất

UPDATE INVOICES
   SET s_id = (SELECT cs.s_id
                 FROM CUSTOMERS_AND_SALES cs
                WHERE cs.c_id = INVOICES.c_id),
       s_name = (SELECT cs.s_name
                   FROM CUSTOMERS_AND_SALES cs
                  WHERE cs.c_id = INVOICES.c_id)
 WHERE INVOICES.c_id IN (SELECT cs.s_id
                           FROM CUSTOMERS_AND_SALES cs)

Sử dụng JOIN

UPDATE INVOICES
  JOIN CUSTOMERS_AND_SALES cs ON cs.c_id = INVOICES.c_id
   SET s_id = cs.s_id,
       s_name = cs.s_name


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách giải quyết LỖI 1060:Tên cột trùng lặp bằng Chế độ xem -> Tạo Chế độ xem

  2. Truy vấn con so với tham gia

  3. SQLite INSERT - TRÊN CẬP NHẬT KHÓA DUPLICATE (UPSERT)

  4. Di chuyển MySQL sang SQL Server

  5. Làm cách nào để cập nhật bộ id từ 1?