答案

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;

思路

  1. 内连接dept_emp和dept_manager表,查询所有非manager员工的emp_no和dept_no
  2. 内连接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
);