两种方法:
方法一:使用 not in
问题是要找出所有非manager的员工编号,所以我们可以使用 not in
select emp_no from employees where emp_no not in (select emp_no from dept_manager)
方法二:使用 left join
我们这里通过 left join 来解题。主表为 employees,找对应 dept_no 为空的数据行即可
select e.emp_no from employees e left join dept_manager d on e.emp_no = d.emp_no where dept_no is null
in 和 join 两者的区别:
一般来说,in关键字适合确定数量的情况,效率较低,不推荐使用。而能使用 in 的情况下,一般都可以转换为 join。推荐使用 join。



京公网安备 11010502036488号