如何在db2合并查询的源部分中连接多个表

时间:2014-01-03 06:56:28

标签: sql db2

请参阅下面给出的示例数据库表。现在在EmpDept表中,一些记录的员工名称错误。必须通过从Employee表中获取相应的lname来更新它。 EmpDept表中的此更新应仅针对“活动”员工进行。我正在尝试使用db2 merge(http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.sql.ref.doc%2Fdoc%2Fr0010873.html)语句。请让我知道如何做到这一点。

    Employee            
empID   fname   lname   status
1   abc xyz active
2   def yzx active
3   ghi zyx inactive
4   jkl zxy inactive
5   mno yxz active

    Dept            
deptID  name        
1   pqrs        
2   lmno        
3   stuv        

    EmpDept         
EmpDeptID   empID   deptID  lname
1           1   1   xyz
2           2   1   yzx
3           2   2   yzx
4           3   2   fff
5           5   3   aaa

1 个答案:

答案 0 :(得分:0)

对于此特定问题,您应使用UPDATE语句,而不是MERGE

UPDATE EmpDep em
SET em.lname = (select e.lname 
from employee e 
where e.empid = em.empid 
and e.status = 'ACTIVE')

以下是UPDATE http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.sql.ref.doc%2Fdoc%2Fr0010873.html

的文档