SQL219

原本的思路如下:
#1、获取每个员工的薪水
#2、获取每个部门经理的薪水
#3、比较大小
select a.emp_no,b.manager_no,a.emp_salary,b.manager_salary
from
(select s.emp_no,salary emp_salary,dept_no
from salaries s inner join dept_emp de on s.emp_no=de.emp_no
where s.emp_no not in(
    select emp_no from dept_manager) )a
inner join  
(select s.emp_no manager_no,salary manager_salary,dept_no
from salaries s inner join dept_emp de on s.emp_no=de.emp_no
where s.emp_no in(
    select emp_no from dept_manager) )b
on a.dept_no=b.dept_no
where a.emp_salary>b.manager_salary

看了大佬的思路后发现自己想复杂了,不需要一定得把员工和经理区分清楚
将第一个第二个表分别和第三个表相连,就得到了员工和经理的薪水情况,这时候直接判断员工的薪水是否大于经理即可,因为员工表中虽然有经理的信息,但是经过比较大小后其相等的关系可以被直接筛选掉,同样能得到符合要求的结果,简易的思路如下:
  select a.emp_no,
       b.emp_no manager_no,
       c.salary emp_salary,
       d.salary manager_salary
  from dept_emp a inner join
       dept_manager b on a.dept_no = b.dept_no inner join 
       salaries c on a.emp_no = c.emp_no inner join 
       salaries d on b.emp_no = d.emp_no
 where c.salary > d.salary
全部评论

相关推荐

nus2201602...:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
05-09 14:45
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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