根据第二个表将值插入到列中

时间:2011-08-24 13:41:15

标签: oracle10g

我有两个表table1,table2。这两个表都可以根据empID加入。

我在table1中有一个名为tabseqno的新列。我想用table2中的tabseqno更新table1的tabseqno。

UPDATE TABLE1  SET TABLE1.TABSEQNO =TABLE2.TABSEQNO
WHERE TABLE1.EMPID= TABLE2.EMPID AND TABLE2.GROUPID=99

1 个答案:

答案 0 :(得分:0)

或者:

update table1 set table1.tabseqno =
  ( select table2.tabseqno from table2
    where table2.empid = table1.empid
    and table2.groupid = 99);

或:

update table1 set table1.tabseqno =
  ( select table2.tabseqno from table2
    where table2.empid = table1.empid
    and table2.groupid = 99)
where exists
  ( select table2.tabseqno from table2
    where table2.empid = table1.empid
    and table2.groupid = 99);

如果表1行没有匹配的table2行,则取决于您想要发生的事情(第一个语句将table1.tabseqno设置为null,第二个句子根本不会更新这些行。)

只有table2子查询只能为任何empid返回最多1行时,两者都有效。