题解 | #获取员工其当前的薪水比其manager当前薪水还高的相关信息#
获取员工其当前的薪水比其manager当前薪水还高的相关信息
http://www.nowcoder.com/practice/f858d74a030e48da8e0f69e21be63bef
本题思路:首先从表中分别得到员工工资表和manager工资表,将其按照部门连接;然后使用员工薪资高于manager薪资这一条件,筛选即可求解。
select t1.e1,t2.e2,t1.salary,t2.salary from
(select de.emp_no e1,dept_no d1,salary
from dept_emp de left join salaries s on de.emp_no = s.emp_no
where de.emp_no not in (select emp_no from dept_manager)) t1 ----- 员工薪资表
left join
(select de.emp_no e2,dept_no d2,salary
from dept_emp de left join salaries s on de.emp_no = s.emp_no
where de.emp_no in (select emp_no from dept_manager)) t2 ----- manager薪资表
on t1.d1 = t2.d2 ----- 按部门连接
where t1.salary > t2.salary ----- 筛选条件,员工工资大于manager工资
ps:题中的表连接均采用left join,否则在筛选时容易漏掉信息