综合评论区的答案发现,员工表是多余的!
方法一
1、 统计所有非manager员工编号
select emp_no
from employees
where emp_no not in (
select emp_no
from dept_manager)
2、 再根据员工id查找薪水
select de.dept_no,a.emp_no,s.salary
from (
select emp_no
from employees
where emp_no not in (
select emp_no
from dept_manager)
) a
join dept_emp de on a.emp_no=de.emp_no
join salaries s on a.emp_no=s.emp_no
方法二
SELECT b.dept_no,
b.emp_no,
d.salary
FROM dept_emp b,
dept_manager c,
salaries d
WHERE b.dept_no = c.dept_no
AND b.emp_no != c.emp_no
AND b.emp_no = d.emp_no