题解 | #获取所有非manager的员工emp_no#

获取所有非manager的员工emp_no

http://www.nowcoder.com/practice/32c53d06443346f4a2f2ca733c19660c

两种方法:
方法一:使用 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

injoin 两者的区别:
一般来说,in关键字适合确定数量的情况,效率较低,不推荐使用。而能使用 in 的情况下,一般都可以转换为 join。推荐使用 join

SQL练习 文章被收录于专栏

已完成牛客的SQL练习。接下来是算法的练习

全部评论

相关推荐

点赞 评论 收藏
分享
头像
11-09 17:30
门头沟学院 Java
TYUT太摆金星:我也是,好几个华为的社招找我了
点赞 评论 收藏
分享
2 收藏 评论
分享
牛客网
牛客企业服务