方法:双表
这个题目的本质并不是这两张表,其实可以看作一张表来做。
- 找到每个部门的最大薪水和对应的部门号(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;


京公网安备 11010502036488号