题目拆解
每个部门(按照部门group by)、当前员工薪水最高(max(salary))、
相关信息,给出dept_no, emp_no以及其对应的salary(join 表 dept_emp和salaries),
按照部门编号升序排列(order by)
拆表分析
select d.dept_no, d.emp_no, s.salary from dept_emp d, salaries s where d.emp_no = s.emp_no select MAX(S.salary) M_salary, D.dept_no from salaries S, dept_emp D where D.emp_no = S.emp_no group by D.dept_no
可以看到第一个表拥有更多的行,在第一个表基础上利用第二张表进行筛选最终可以得到我们要的信息
select d.dept_no, d.emp_no, s.salary from dept_emp d, salaries s, (select MAX(S.salary) M_salary, D.dept_no from salaries S, dept_emp D where D.emp_no = S.emp_no group by D.dept_no) T where d.emp_no = s.emp_no and T.dept_no = d.dept_no and s.salary = T.M_salary order by dept_no;