获取DB2中的记录

时间:2013-12-24 08:07:27

标签: sql db2

我有3个表table1,table2和employee表 在表1中,我有 status_code 列(可以是已分配或未分配)和 table1Id

在表格2中,我将列 table1Id 作为外键, employee_id 作为其他列,

在表3 员工中,我的列 employee_first_name employee_last_name employee_id 以及 department_id

现在,我正在尝试获取所有那些记录,如果它被分配状态,那么希望有员工姓名,如果未分配,则在emplyee_first_name和last_name列中为空值。 如果状态未分配,那么将没有名字和姓氏,员工表中只有employee_id和department id

我正在使用:

select
   t1.table1Id, Emp.FIRST_NAME,Emp.LAST_NAME
from
   table1 t1, table2 t2 , employee emp 
where
   t1.status in (2733,2734) 
and
   t2.tableId2 = t1.tableId1 and t2.employee_id = emp.employee_id;

此查询仅向我提供已分配状态的记录以及何时删除t2.employee_id = emp.employee_id,然后检查分配了哪些状态的记录以及未分配状态的记录但是为此它给出了与未分配状态相对应的所有其他first_name和last_name。

1 个答案:

答案 0 :(得分:0)

 select
 t1.table1Id, Emp.first_name, Emp.last_name
 from
 table1 t1 left join table2 t2 on (t1.tableId1 = t2.tableId2)
 left join employee Emp on (t2.employee_id = Emp.employee_id)
 where
 t1.status in (2733,2734)