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

Cập nhật câu lệnh cho nhiều id

Điều này là do bạn đang cố gắng đặt column3 đến một kết quả trả về và SQL dự kiến ​​rằng đó chỉ là một giá trị (vô hướng). Công cụ SQL bị nhầm lẫn khi bạn chuyển cho nó nhiều hơn một giá trị trả về (nó nên sử dụng giá trị nào? ... nó không giả sử lặp lại qua các kết quả). Vì vậy, nếu bạn muốn cập nhật toàn bộ tập kết quả, thì bạn cần tạo một bảng con từ bạn truy vấn và tham gia vào đó. Truy vấn của bạn sẽ trông giống như thế này

UPDATE Table3
SET Column3 = subtable.value
FROM Table3 
    JOIN (
        select t2.column3+t1.column3 as value, t1.id
        from table2 t2 with (nolock) join table1 t1
        on table2.id=t1.id
        where table2.id IN (100,101)
    ) AS subtable
    ON subtable.id = Table3.id
WHERE table3.id IN (100, 101)

Theo giả định rằng table3.id khớp với id khác, bạn cũng thực sự không cần where table2.id IN ...



  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ó một plugin SVN cho SQL Server Management Studio 2005 hoặc 2008 không?

  2. Xếp hạng các chức năng trong SQL Server

  3. Cắt ngắn (không làm tròn) các vị trí thập phân trong SQL Server

  4. Cài đặt thời gian chờ cho SQL Server

  5. Nhận danh sách tất cả các khóa chính trong cơ sở dữ liệu