题解 | #获取所有非manager员工当前的薪水情况#

获取所有非manager员工当前的薪水情况

http://www.nowcoder.com/practice/8fe212a6c71b42de9c15c56ce354bebe

初读题目,我们都会感到无从下手,所以,我们先将题目进行分解:
第一步:先找到每个部门的非manager员工信息

select de.dept_no,de.emp_no from dept_emp de join dept_manager dm on
de.emp_no NOT in (dm.emp_no) WHERE de.dept_no = dm.dept_no;

在上面的语句中,我们用到了not in(),找到非manager员工。
第二步:将上述查到的信息当做一张临时表,结合薪水表salaries,查出每一个部门中所有非manager员工的
薪水

SELECT t.dept_no,t.emp_no,s.salary from salaries s JOIN
(select de.dept_no,de.emp_no from dept_emp de join dept_manager dm on
de.emp_no NOT in (dm.emp_no) WHERE de.dept_no = dm.dept_no) t
on t.emp_no = s.emp_no;

综合上面的解题思路:对于多张表查询信息的情况,我们一般都会先将其拆解成多个部分,而后联系这各个部门,
求出最后的结果。

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 18:35
简历上把1个月实习写成了3个月,会进行背调吗?
码农索隆:一个月有一个月的实习经历,三个月有三个月的实习经历
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-03 17:37
点赞 评论 收藏
分享
05-13 02:01
已编辑
惠州学院 前端工程师
安静的少年在求佛:建议把公司名字写到标题。以后有人想搜就能直接搜到
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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