题解 | #获取所有非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;
综合上面的解题思路:对于多张表查询信息的情况,我们一般都会先将其拆解成多个部分,而后联系这各个部门,
求出最后的结果。