题解 | #获取员工其当前的薪水比其manager当前薪水还高的相关信息#

获取员工其当前的薪水比其manager当前薪水还高的相关信息

http://www.nowcoder.com/practice/f858d74a030e48da8e0f69e21be63bef

select t1.emp_no, t2.emp_no as manager_no, t1.salary as emp_salary,
t2.salary as manager_salary
from
(select d.emp_no,d.dept_no,s.salary
from dept_emp d
inner JOIN
salaries s
on s.emp_no = d.emp_no) t1
left JOIN
(select dm.dept_no, dm.emp_no,ss.salary
from dept_manager dm, salaries ss 
where ss.emp_no = dm.emp_no) t2
on t1.dept_no = t2.dept_no
where t1.salary > t2.salary
  1. 先把所有员工的薪水select出来,作为临时表t1
  2. 把经理的薪水也select出来,作为临时表t2
  3. 把t1,t2通过部门id关联起来,得到一张所有员工信息和部门经理薪水的表,由于经理的薪水不会大于他自己本身,所以只用把t1中薪水大于t2中的薪水挑选出来就行
全部评论
这个只适用一个部门只有一个经理的情况
点赞 回复 分享
发布于 2022-08-13 20:13
我思路也是这样,但想不到,部门id能关联起来
点赞 回复 分享
发布于 2022-01-04 16:15

相关推荐

评论
7
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务