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

Cách cập nhật với tham gia bên trong trong Oracle

Cú pháp này sẽ không hoạt động trong Oracle SQL.

Trong Oracle, bạn có thể cập nhật một phép nối nếu các bảng được "bảo toàn khóa", tức là:

UPDATE (SELECT a.val_a, b.val_b
          FROM table a
          JOIN table b ON a.b_pk = b.b_pk)
   SET val_a = val_b

Giả sử rằng b_pk là khóa chính của b , ở đây có thể cập nhật tham gia vì đối với mỗi hàng A có tối đa một hàng từ B, do đó cập nhật là xác định.

Trong trường hợp của bạn vì giá trị được cập nhật không phụ thuộc vào bảng khác nên bạn có thể sử dụng một bản cập nhật đơn giản với điều kiện TỒN TẠI, giống như sau:

UPDATE mytable t
   SET t.VALUE = 'value'
 WHERE EXISTS 
       (SELECT NULL
          FROM tableb b
         INNER JOIN tablec c ON c.id = b.id
         INNER JOIN tabled d ON d.id = c.id
         WHERE t.id = b.id
           AND d.key = 1)


  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 tách một chuỗi trong Oracle

  2. Tạo bộ hẹn giờ trong Oracle Forms / Forms 6i và hiển thị đồng hồ

  3. Cách bật ghi nhật ký cho các câu lệnh SQL khi sử dụng JDBC

  4. Oracle JDBC:tên người dùng / mật khẩu không hợp lệ (hoặc-01017)

  5. Cách sử dụng Oracle PLSQL Tables (Mảng liên kết hoặc bảng chỉ mục)