Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zaktualizuj wiersze w jednej tabeli danymi z innej tabeli na podstawie jednej kolumny w każdej równej

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
      );

Albo tak (jeśli t2.kolumna1 <=> t1.kolumna1 jest wiele do jednego i każdy z nich jest dobry):

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. Błąd Oracle ORA-12154 w lokalnych usługach IIS, ale nie w programie Visual Studio Development Server

  2. Zaktualizuj instrukcję za pomocą klauzuli

  3. ORA-1114 Uruchamianie łaty danych

  4. ORA-12505, TNS:listener nie zna obecnie identyfikatora SID podanego w deskryptorze połączenia

  5. Domyślne zachowanie automatycznego zatwierdzania połączenia JDBC