SELECT de.emp_no, dm.emp_no AS manager_no, s1.salary AS emp_salary, s2.salary AS manager_salary FROM dept_emp de LEFT JOIN dept_manager dm ON de.dept_no=dm.dept_no AND de.emp_no<>dm.emp_no LEFT JOIN salaries s1 ON de.emp_no=s1.emp_no AND s1.to_date='9999-01-01' LEFT JOIN salaries s2 ON dm.emp_no=s2.emp_no AND s2.to_date='9999-01-01' WHERE s1.salary>s2.salary;
一共3张表,用到3次连接,其中薪资表用到两次
1、dept_emp与dept_manager连接 此处称t1
找出每个emp所在dept的manager_no
2、t1与salaries第一次连接
找出员工emp的薪水
3、t1与salaries第二次连接
找出manager的薪水
4、最后限定条件,emp的薪水比manager高