题解 | #获取所有非manager的员工emp_no#
获取所有非manager的员工emp_no
http://www.nowcoder.com/practice/32c53d06443346f4a2f2ca733c19660c
两种思路(推荐思路2):
思路1:
1、先从dept_manager表里查出emp_no
2、不在dept_manager表里的emp_no就是非manager的emp_no
select
emp_no
from
employees
where
emp_no not in ( //不在dept_manager表里的emp_no就是非manager的emp_no
select //先从dept_manager表里查出emp_no
emp_no
from
dept_manager
);
emp_no
from
employees
where
emp_no not in ( //不在dept_manager表里的emp_no就是非manager的emp_no
select //先从dept_manager表里查出emp_no
emp_no
from
dept_manager
);
思路2:
1、利用左外连接查询employees所有数据,此时emp_no每行对应的dept_no可能会出现null
2、为null就是非manager的emp_no
select
e.emp_no
from
employees e
left outer join //利用左外连接查询employees所有数据,此时emp_no每行对应的dept_no可能会出现null
dept_manager d
on
e.emp_no = d.emp_no
where
dept_no is null; //为null就是非manager的emp_no
e.emp_no
from
employees e
left outer join //利用左外连接查询employees所有数据,此时emp_no每行对应的dept_no可能会出现null
dept_manager d
on
e.emp_no = d.emp_no
where
dept_no is null; //为null就是非manager的emp_no