题解 | #获取所有员工当前的manager#
获取所有员工当前的manager
http://www.nowcoder.com/practice/e50d92b8673a440ebdf3a517b5b37d62
思路1(内连接查询)(推荐):
找不同查不同
select
de.emp_no,
dm.emp_no
from
dept_emp as de
inner join -- 使用内连接,根据条件查询非员工和其对应的经理
dept_manager as dm
on
de.dept_no = dm.dept_no
where
de.emp_no != dm.emp_no
思路2(外连接查询):
找不同查全部删多余
select
de.emp_no,
dm.emp_no as manager
from
dept_emp de
left outer join -- 使用左外连接查询dept_emp所有员工
dept_manager dm
on
de.dept_no = dm.dept_no
and
de.emp_no != dm.emp_no -- 不等就是非manager.现在已经把非员工和其对应的经理查出来了
where
dm.emp_no is not null; -- 去掉本身是经理的员工
找不同查不同
select
de.emp_no,
dm.emp_no
from
dept_emp as de
inner join -- 使用内连接,根据条件查询非员工和其对应的经理
dept_manager as dm
on
de.dept_no = dm.dept_no
where
de.emp_no != dm.emp_no
思路2(外连接查询):
找不同查全部删多余
select
de.emp_no,
dm.emp_no as manager
from
dept_emp de
left outer join -- 使用左外连接查询dept_emp所有员工
dept_manager dm
on
de.dept_no = dm.dept_no
and
de.emp_no != dm.emp_no -- 不等就是非manager.现在已经把非员工和其对应的经理查出来了
where
dm.emp_no is not null; -- 去掉本身是经理的员工