题解 | #获取所有非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练习。接下来是算法的练习

全部评论

相关推荐

最近和朋友聊天,她说了句让我震惊的话:"我发现我连周末点外卖都开始'最优解'了,一定要赶在高峰期前下单,不然就觉得自己亏了。"这不就是典型的"班味入侵"吗?工作思维已经渗透到生活的方方面面。
小型域名服务器:啊?我一直都这样啊?我还以为是我爱贪小便宜呢?每次去实验室都得接一杯免费的开水回去,出门都得规划一下最短路径,在宿舍就吃南边的食堂,在实验室就吃北边的食堂,快递只有顺路的时候才取。
点赞 评论 收藏
分享
勤奋努力的椰子这就开摆:美团骑手在美团工作没毛病
投递美团等公司10个岗位
点赞 评论 收藏
分享
挣K存W养DOG:他真的很中意你,为什么不回他
点赞 评论 收藏
分享
2 收藏 评论
分享
牛客网
牛客企业服务