描述
有一个员工表employees简况如下:
有一个,部门员工关系表dept_emp简况如下:
有一个部门经理表dept_manager简况如下:
有一个薪水表salaries简况如下:
获取所有非manager员工薪水情况,给出dept_no、emp_no以及salary,以上例子输出:
/*题目:
获取所有非manager员工薪水情况,给出dept_no、emp_no以及salary
*/
-- 方法一:内连接+子查询
select de.dept_no,e.emp_NO,s.salary
from employees e
join dept_emp de
on e.emp_NO = de.emp_NO
join salaries s
on s.emp_no = de.emp_NO
where e.emp_no not in
(
select e.emp_NO
from employees e
join dept_manager dm
on e.emp_NO = dm.emp_no
)
-- 方法二:内连接+左连接
select de.dept_no,e.emp_NO,s.salary
from employees e
join dept_emp de
on e.emp_NO = de.emp_NO
join salaries s
on s.emp_no = de.emp_NO
left join dept_manager dm
on s.emp_NO = dm.emp_no
where dm.emp_no is null
-- 方法三:where简单查询
SELECT
b.dept_no,
a.emp_no,
d.salary
FROM
employees a,
dept_emp b,
dept_manager c,
salaries d
WHERE
a.emp_no = b.emp_no
AND b.dept_no = c.dept_no
AND b.emp_no != c.emp_no
AND a.emp_no = d.emp_no