Oracle
 sql >> база данни >  >> RDS >> Oracle

Актуализирайте редовете в една таблица с данни от друга таблица въз основа на една колона във всяка една от тях

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

Или това (ако t2.column1 <=> t1.column1 са много към едно и всеки от тях е добър):

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. Изхвърляне на блокове от данни

  2. Функция FLOOR() в Oracle

  3. Потърсете конкретен низ в колоната на Oracle clob

  4. как да създадете таблица в oracle

  5. Oracle 'Partition By' и 'Row_Number' ключова дума