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

Cập nhật với truy vấn Tham gia trong Oracle

Trừ khi SELECT của bạn truy vấn con trả về một hàng duy nhất, UPDATE của bạn câu lệnh sẽ không thành công với lỗi

ORA-01427: single-row subquery returns more than one row

Nói chung, khi bạn có một bản cập nhật tương quan, bạn cần một số điều kiện liên quan đến các hàng trong bảng bên ngoài T1 đến các hàng trong truy vấn con bên trong để đảm bảo rằng truy vấn con trả về một hàng duy nhất. Nó thường trông giống như

UPDATE table1 t1 SET (t1.col,t1.Output) = (
  SELECT t2.col, t3.Output + t2.col
  FROM tabl2 t3 
  LEFT JOIN table1 t2 ON t3.Join_Key = t2.Join_Key
  WHERE t2.col is not NULL
    AND t1.some_key = t2.some_key);

Cuối cùng, UPDATE này câu lệnh đang cập nhật mọi hàng trong T1 . Đó có phải là những gì bạn dự định? Hay bạn chỉ muốn cập nhật các hàng, chẳng hạn như bạn tìm thấy kết quả phù hợp trong truy vấn con của mình?



  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 mã hóa dữ liệu trong Oracle bằng PL SQL

  2. Cách bật tính năng theo dõi trong ứng dụng oracle r12

  3. Chuyển các giá trị được đọc từ tệp dưới dạng đầu vào cho truy vấn SQL trong Oracle

  4. Cách lấy tên tháng từ ngày trong Oracle

  5. Oracle:Thứ tự cột có quan trọng trong một chỉ mục không?