题解 | 右连接

查找所有员工的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会保留公共部分,以及右表的所有记录

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务