使用另外两个表列填充表列

时间:2017-12-08 07:09:04

标签: sql oracle join sql-update

我有三个名为table1,table2,table3的表。并且有两个列号,如数字和等级。我想用其他2个表填充我的table3级列。使用pl sql架构。

enter image description here

感谢。 :)

3 个答案:

答案 0 :(得分:1)

使用可更新视图(因为Oracle不支持带有更新的内部联接语法):

geom_smooth

答案 1 :(得分:0)

它应该像union all一样简单:

insert into table3
select t1.number, t1.grade 
  from table1 t1
union all
select t2.number, t2.grade 
  from table2 t2;

对于不同的行,您可以使用 union 而不是 union all

答案 2 :(得分:0)

您也可以根据自己的要求使用Merge

MERGE INTO TABLE3 TGT
     USING (
              select t1.col_num, t1.col_grde
                  from table1 t1
                union all
                select t2.col_num, t2.col_grde 
                  from table2 t2
           ) SRC     

        ON (TGT.col_num = SRC.col_num)

     WHEN MATCHED THEN
          UPDATE
             SET TGT.col_grde = SRC.col_grde

    When not matched then
    insert (tgt.col_num,
            tgt.col_grde) 
    values 
           (src.col_num,
           src.col_grde );