方法:双表
这个题目的本质并不是这两张表,其实可以看作一张表来做。
- 找到每个部门的最大薪水和对应的部门号(temp2)
- 找到每个员工的薪水,部门号,员工号
- 内联,设置条件,查询
ps
其实这道题目如果不用查找员工编号,会很简单。。。。。
select temp1.dept_no,temp1.emp_no,temp1.salary as maxSalary from ( select dept_emp.dept_no,dept_emp.emp_no,salaries.salary from dept_emp inner join salaries on dept_emp.emp_no=salaries.emp_no ) as temp1 inner join( select max(salary) as ms,dept_emp.dept_no from dept_emp inner join salaries on dept_emp.emp_no=salaries.emp_no group by dept_emp.dept_no ) as temp2 on temp1.dept_no=temp2.dept_no and temp1.salary=temp2.ms order by temp1.dept_no;