我有三张桌子
1)*
员工
Empname
1 R 2 S 3 T2)部门
Deptid empid deptdetlsid
1 1 1
1 2 1
2 1 2
3)详细资料
Dept磷化部门
1财务
2销售
员工可以属于多个departments.or,可能是一个尚未分配部门的新员工。我正在编写一个查询,以获取所有员工的列表,如果他们的部门是财务返回金融部门,否则将填充一个空值。
我所写的查询是
Select empid,empname,deptname from employee,department,
(select deptdetailsid from deptdetails where deptname ='Finance')deptdetails
where Employee.empid =Department.empid(+)
And department.deptdetailsid = deptdetails.deptdetailsid (+)是否存在避免子查询并更有效地执行子查询的方法?
发布于 2017-03-28 18:42:24
我不知道为什么您需要避免子查询,但您可能正在寻找另一个左联接.
Select employee.empid, employee.empname, department.deptname
from employee
left outer join department on (employee.empid = department.empid)
left outer join deptdetails on (deptdetails.deptdetailsid = departement.deptdetailsid and deptdetails.deptname = 'Finance');https://stackoverflow.com/questions/43047391
复制相似问题