方法:双表

这个题目的本质并不是这两张表,其实可以看作一张表来做。

  1. 找到每个部门的最大薪水和对应的部门号(temp2)
  2. 找到每个员工的薪水,部门号,员工号
  3. 内联,设置条件,查询

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;