描述
有一个,部门关系表dept_emp简况如下:
有一个部门经理表dept_manager简况如下:
有一个薪水表salaries简况如下:
获取员工其当前的薪水比其manager当前薪水还高的相关信息,
第一列给出员工的emp_no,
第二列给出其manager的manager_no,
第三列给出该员工当前的薪水emp_salary,
第四列给该员工对应的manager当前的薪水manager_salary
以上例子输出如下:
/*题目:
获取员工其当前的薪水比其manager当前薪水还高的相关信息,
第一列给出员工的emp_no,
第二列给出其manager的manager_no,
第三列给出该员工当前的薪水emp_salary,
第四列给该员工对应的manager当前的薪水manager_salary
*/
-- 方法一:子查询
select
s.emp_no,
dm.emp_no,
s.salary,
(
select s1.salary
from salaries s1
where s1.emp_no = dm.emp_no
) as manager_salary
from
salaries s
left join
dept_emp de
on
s.emp_no = de.emp_NO
left join
dept_manager dm
on
de.dept_no = dm.dept_no
where
s.salary >
(
select s1.salary
from salaries s1
where s1.emp_no = dm.emp_no
)
-- 方法二:自连接+不等值连接
select
s1.emp_no,
s2.emp_no as manager_no,
s1.salary as emp_salary,
s2.salary as manager_salary
from
dept_emp de,
dept_manager dm,
salaries s1,
salaries s2
where
s1.emp_no = de.emp_no
and s2.emp_no = dm.emp_no
and de.dept_no = dm.dept_no
and s1.salary > s2.salary