【SQL218】题解 | 查找所有员工的last_name和first_name以及对应的

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

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

select e.last_name, e.first_name, s.dept_name from (employees e left join dept_emp d on e.emp_no = d.emp_no) left join departments s on d.dept_no = s.dept_no;

这道题是查找所有员工的last_name和first_name以及对应的dept_name,也包括暂时没有分配部门的员工

两个关键点:

1.思考如何将employees表、dept_emp表和departments表连接,employees表和dept_emp表按照员工编号相等e.emp_no = d.emp_no左连接,接着将左连接后的表与departments表按照部门编号相等d.emp_no = s.emp_no左连接

(employees e left join dept_emp d on e.emp_no = d.emp_no) left join departments s on d.dept_no = s.dept_no

2.查找所有员工的last_name和first_name以及对应的dept_name,注意有些重复的字段要写明哪张表,防止出现歧义

select e.last_name, e.first_name, s.dept_name from

完整代码如下:

select e.last_name, e.first_name, s.dept_name from (employees e left join dept_emp d on e.emp_no = d.emp_no) left join departments s on d.dept_no = s.dept_no;
# select e.last_name, e.first_name, s.dept_name from employees e left join dept_emp d on e.emp_no = d.emp_no left join departments s on d.dept_no = s.dept_no;或者去掉第一个左连接的括号也可以

完结

SQL学习专栏 文章被收录于专栏

发个sql学习和实践的小记录

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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