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

Cập nhật các hàng trong một bảng với dữ liệu từ một bảng khác dựa trên một cột trong mỗi bảng bằng nhau

update 
  table1 t1
set
  (
    t1.column1, 
    t1.column2
      ) = (
    select
      t2.column1, 
      t2.column2
    from
      table2  t2
    where
      t2.column1 = t1.column1
     )
    where exists (
      select 
        null
      from 
        table2 t2
      where 
        t2.column1 = t1.column1
      );

Hoặc điều này (nếu t2.column1 <=> t1.column1 là nhiều thành một và bất kỳ ai trong số họ đều tốt):

update 
  table1 t1
set
  (
    t1.column1, 
    t1.column2
      ) = (
    select
      t2.column1, 
      t2.column2
    from
      table2  t2
    where
      t2.column1 = t1.column1
    and
      rownum = 1    
     )
    where exists (
      select 
        null
      from 
        table2 t2
      where 
        t2.column1 = t1.column1
      ); 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhầm lẫn InMemory DUPLICATE trong Oracle RAC

  2. Sửa lỗi “ORA-01789:khối truy vấn có số cột kết quả không chính xác”

  3. Chứng minh tính tương đương của truy vấn SQL

  4. Truy vấn con trong câu lệnh select hoạt động như thế nào trong oracle

  5. Khai báo &thiết lập các biến trong một câu lệnh được chọn