10011员工仍然在职,只不过没有部门,所以这道题的问法以及编译器通过的程序都没有考虑,仍在职却没有部门的
SELECT de.dept_no,res.emp_no,salary FROM dept_emp de RIGHT JOIN (SELECT e.emp_no FROM employees e LEFT JOIN dept_manager dm ON e.emp_no = dm.emp_no WHERE dm.dept_no IS NULL) res ON res.emp_no = de.emp_no INNER JOIN salaries s ON res.emp_no = s.emp_no ;
其中res是非manager员工,包括10011。但是上述结果编译器不通过,所以题目的要求的应该是有部门的员工。