2011-08-24 86 views
0

我有两个表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 

回答

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的行不匹配表2行(第一个语句将设置什么table1.tabseqno为空,第二个不会更新那些行)。

只有当table2子查询最多只能返回1行的任何empid时,两者都可以使用。

+0

托尼谢谢。我怎样才能做全球更新。我想用table2中的列值更新table1中的所有记录。 – acadia

+0

使用我在答案中给出的2条SQL语句之一! –

相关问题