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

Làm cách nào để thực hiện câu lệnh CẬP NHẬT với JOIN trong SQL Server?

Cú pháp hoàn toàn phụ thuộc vào SQL DBMS bạn đang sử dụng. Dưới đây là một số cách để thực hiện điều đó trong ANSI / ISO (hay còn gọi là sẽ hoạt động trên bất kỳ SQL DBMS nào), MySQL, SQL Server và Oracle. Xin lưu ý rằng phương pháp ANSI / ISO được đề xuất của tôi thường sẽ chậm hơn nhiều so với hai phương pháp còn lại, nhưng nếu bạn đang sử dụng SQL DBMS không phải MySQL, SQL Server hoặc Oracle, thì đó có thể là cách duy nhất để sử dụng (ví dụ:nếu SQL DBMS của bạn không hỗ trợ MERGE ):

ANSI / ISO:

update ud 
     set assid = (
          select sale.assid 
          from sale 
          where sale.udid = ud.id
     )
 where exists (
      select * 
      from sale 
      where sale.udid = ud.id
 );

MySQL:

update ud u
inner join sale s on
    u.id = s.udid
set u.assid = s.assid

Máy chủ SQL:

update u
set u.assid = s.assid
from ud u
    inner join sale s on
        u.id = s.udid

PostgreSQL:

update ud
  set assid = s.assid
from sale s 
where ud.id = s.udid;

Lưu ý rằng bảng đích không được lặp lại trong FROM điều khoản cho Postgres.

Oracle:

Cập nhật
update
    (select
        u.assid as new_assid,
        s.assid as old_assid
    from ud u
        inner join sale s on
            u.id = s.udid) up
set up.new_assid = up.old_assid

SQLite:

update ud 
     set assid = (
          select sale.assid 
          from sale 
          where sale.udid = ud.id
     )
 where RowID in (
      select RowID 
      from ud 
      where sale.udid = ud.id
 );


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiểm tra xem một bảng có cột TIMESTAMP trong SQL Server với OBJECTPROPERTY () hay không

  2. Khôi phục cơ sở dữ liệu SQL một cách dễ dàng - Hướng dẫn từng bước

  3. Đăng nhập máy chủ SQL tên miền chéo bằng xác thực Windows

  4. Làm cách nào để kết nối với SQL Server qua sqlalchemy bằng Windows Authentication?

  5. Cách hoạt động của hàm STR () trong SQL Server (T-SQL)