inner join和outer join的区别

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

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

1. 分析

使用外部联结的左联结。
内联结,两边表同时有对应的数据,即任何一边缺失数据就不显示。
左联结,读取左边数据表的全部数据,即便右边表无对应数。即右表d中dept_no即使为NULL,也会读取左表e中的全部emp。

2. 代码

SELECT e.last_name, e.first_name, d.dept_no
FROM employees AS e
LEFT OUTER JOIN dept_emp AS d
ON e.emp_no=d.emp_no;
全部评论
因为牛客网的编辑器不能用right join 和full join ,不是说右连接不对。 还有就是大家好像都习惯用left join,所以会将right join 的表进行一个调换顺序。
8 回复 分享
发布于 2020-07-07 10:22
select a.last_name,a.first_name,b.dept_no from employees a left join dept_emp b on a.emp_no=b.emp_no; select b.last_name,b.first_name,a.dept_no from dept_emp a right join employees b on a.emp_no=b.emp_no; 为什么左连接可用,右连接就不可用呢?
3 回复 分享
发布于 2020-04-03 14:29
为什么代码的第四句 ON换成WHREE就不行呢? ON和WHERE不是差不多等价吗?
1 回复 分享
发布于 2020-09-12 16:15
select e.first_name,e.last_name,d.dept_no from employees as e left join dept_emp as d on e.emp_no = d.emp_no; 想知道我这个代码错在哪里了求大神解答
1 回复 分享
发布于 2020-09-22 14:51
select employees.last_name,employees.first_name,dept_emp.dept_no from employees,dept_emp where employees.emp_no=dept_emp.emp_no(+);想知道为啥错了?
1 回复 分享
发布于 2020-12-23 16:55
画两个圈圈比较好理解
1 回复 分享
发布于 2021-10-10 11:09
select employees.last_name,employees.first_name,dept_emp.dept_no from employees left join dept_emp on employees.emp_no=dept_emp.emp_no想问问这样写为什么会错呢
1 回复 分享
发布于 2022-02-26 20:55
select employees.last_name,employees.first_name 用错逗号了
1 回复 分享
发布于 2022-04-05 20:36

相关推荐

评论
141
6
分享
牛客网
牛客企业服务