查找所有员工的last_name和first_name以及对应部门编号dept_no

查找所有员工的last_name和first_name以及对应部门编号dept_no

http://www.nowcoder.com/questionTerminal/dbfafafb2ee2482aa390645abd4463bf

注意是大表(数据量多的)在前,使用外连接
我在小米数据挖掘实习面试的过程中,面试官就问过两张表连接,是大表在前还是小表在前

select
last_name,first_name,dept_no
from employees a left join dept_emp b
on a.emp_no=b.emp_no
全部评论
原则是小表驱动大表,当使用left join时,左表是驱动表,右表是被驱动表,当使用right join时,右表时驱动表,左表是被驱动表,当使用inner join时,mysql会选择数据量比较小的表作为驱动表,大表作为被驱动表
13 回复 分享
发布于 2021-04-13 07:32
左外连接原理:显示左表全部记录,右表缺失内容用NULL补全
4 回复 分享
发布于 2021-08-26 21:10
这个题是要所有人的数据,所以确实是大表在前;平时都是大表里查小表的数据,所以小表在前
3 回复 分享
发布于 2021-07-10 20:43
楼主说错了吧,连接是小表在前,小表驱动大表。但是题目中的表的数量都太小了,达不到“大表”的水平,这道题并不需要考虑这个。
2 回复 分享
发布于 2021-04-28 10:00
大表小标在前后都对应的法子,就是左右连表的交替写法了。
1 回复 分享
发布于 2021-10-10 11:16
大数据里面的sql都是小表在前的
1 回复 分享
发布于 2021-06-01 16:10
多对少
点赞 回复 分享
发布于 2021-05-23 13:43
我小表在前,结果有一些用例没通过
点赞 回复 分享
发布于 2020-11-17 19:48

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
评论
41
2
分享

创作者周榜

更多
牛客网
牛客企业服务