select t1.emp_no, t2.emp_no as manager_no, t1.salary as emp_salary,
t2.salary as manager_salary
from
(select d.emp_no,d.dept_no,s.salary
from dept_emp d
inner JOIN
salaries s
on s.emp_no = d.emp_no) t1
left JOIN
(select dm.dept_no, dm.emp_no,ss.salary
from dept_manager dm, salaries ss 
where ss.emp_no = dm.emp_no) t2
on t1.dept_no = t2.dept_no
where t1.salary > t2.salary
  1. 先把所有员工的薪水select出来,作为临时表t1
  2. 把经理的薪水也select出来,作为临时表t2
  3. 把t1,t2通过部门id关联起来,得到一张所有员工信息和部门经理薪水的表,由于经理的薪水不会大于他自己本身,所以只用把t1中薪水大于t2中的薪水挑选出来就行