题解 | 右连接
查找所有员工的last_name和first_name以及对应的dept_name
http://www.nowcoder.com/practice/5a7975fabe1146329cee4f670c27ad55
查找所有员工的last_name和first_name以及对应的dept_name,也包括暂时没有分配部门的员工
解题思路:
1.将表dept_emp和表departments连接,得到有着emp_no和dept_name对应关系的新表;
2.将新表和员工信息表employees连接,得到所有员工的last_name和first_name以及对应的dept_name;
3.由于有的员工没有部门,所以部门编号和部门名称是空值,所以在第二步连接的时候需要保留员工信息表employees的所有记录,并以员工编号分组。
select e.last_name,e.first_name,d.dept_name from dept_emp de join departments d right join employees e on e.emp_no = de.emp_no and d.dept_no = de.dept_no group by e.emp_no;
这里用的right join会保留公共部分,以及右表的所有记录

