我有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。
答案 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)