答案
select emp.dept_no, s.emp_no, s.salary
from salaries s inner join (
select de.emp_no, de.dept_no
from dept_emp de, dept_manager dm
where de.dept_no = dm.dept_no
and de.emp_no <> dm.emp_no
) emp /*查询所有非manager员工的emp_no和dept_no*/
on s.emp_no = emp.emp_no;思路
- 内连接dept_emp和dept_manager表,查询所有非manager员工的emp_no和dept_no
- 内连接1和salaries表,查询非manager员工的emp_no,dept_no和salary
优化
复制优秀答案,来自@LKP1111
SELECT dept_no, t1.emp_no, salary
FROM dept_emp t1
JOIN salaries t2
ON(t1.emp_no = t2.emp_no)
WHERE t1.emp_no NOT IN (
SELECT emp_no
FROM dept_manager
);
京公网安备 11010502036488号