SQL213

查找所有员工的last_name和first_name以及对应的dept_name

https://www.nowcoder.com/practice/5a7975fabe1146329cee4f670c27ad55

select last_name,
first_name,
a.dept_name
from employees e
left join (select dt.dept_no,
dt.dept_name,
de.emp_no
from departments dt
join dept_emp de
on dt.dept_no=de.dept_no) a
on e.emp_no=a.emp_no

查询结果:员工的姓和名以及其对应的部门名称

查询来源:employees,departments,dept_emp

查询要求:查询结果需要包括暂时没有部门的员工信息

解题思路:由于员工的姓和名以及其对应的部门编号数据需要通过employees,dept_emp两个表进行连接,部门编号对应的部门名称又需要departments,dept_emp两个表进行连接,所以总共需要连接三个表就可以得到员工姓名及其对应的部门名称。这里我选择使用子查询先将departments,dept_emp两个表进行连接,得到每个部门编号对应的部门名称以及已经分配了部门的员工编号的新表,命名为a表,然后将a表与employees表进行左连接,得到所有员工的信息与对应的部门名称,没有分配部门的员工在部门那一列的值为null

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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