sql SELECT r1.dept_no, s.emp_no, r1.maxSalary FROM ( SELECT d1.emp_no, d1.dept_no, max(s1.salary) maxSalary, d1.to_date FROM dept_emp d1 INNER JOIN salaries s1 ON d1.emp_no = s1.emp_no WHERE s1.to_date ='9999-01-01' AND d1.to_date = '9999-01-01' GROUP BY d1.dept_no ) AS r1, dept_emp d, salaries s WHERE r1.maxSalary = s.salary AND d.emp_no = s.emp_no AND r1.dept_no = d.dept_no AND r1.to_date = '9999-01-01' AND s.to_date = '9999-01-01' ORDER BY d.dept_no
太难了这个题,总结一下,就是个人觉得这个9999的这个条件其实可以不加,然后就是,三个表不可以用inner内外连接查询,因为这样结果会整合,只能再where语句中添加对应的关联条件,因为子查询查出的结果是分过组的所以拿这个结果就可以了。