update one table with data from another

后端 未结 5 769
孤独总比滥情好
孤独总比滥情好 2020-11-27 02:36

Table 1:

id    name    desc
-----------------------
1     a       abc
2     b       def
3     c       adf

Table 2:

id    na         


        
5条回答
  •  轮回少年
    2020-11-27 03:09

    Oracle 11g R2:

    create table table1 (
      id number,
      name varchar2(10),
      desc_ varchar2(10)
    );
    
    create table table2 (
      id number,
      name varchar2(10),
      desc_ varchar2(10)
    );
    
    insert into table1 values(1, 'a', 'abc');
    insert into table1 values(2, 'b', 'def');
    insert into table1 values(3, 'c', 'ghi');
    
    insert into table2 values(1, 'x', '123');
    insert into table2 values(2, 'y', '456');
    
    merge into table1 t1
    using (select * from table2) t2
    on (t1.id = t2.id)
    when matched then update set t1.name = t2.name, t1.desc_ = t2.desc_;
    
    select * from table1;
    
            ID NAME       DESC_
    ---------- ---------- ----------
             1 x          123
             2 y          456
             3 c          ghi
    

    See also Oracle - Update statement with inner join.

提交回复
热议问题