题解 | #获取所有非manager员工当前的薪水情况#

获取所有非manager员工当前的薪水情况

http://www.nowcoder.com/practice/8fe212a6c71b42de9c15c56ce354bebe

本题有两种解法

方法一:inner join

思路:本题的重点在于获取非manager员工,因此我们使用inner joinemployees,dept_emp,salaries表进行连接,在 where 条件中加入

e.emp_no not in (select emp_no from dept_manager where to_date = '9999-01-01')

来进行判断,由此来排除掉是manager的员工。

select de.dept_no, e.emp_no, s.salary
from employees e, dept_emp de, salaries s
where e.emp_no = de.emp_no and e.emp_no = s.emp_no and e.emp_no not in (select emp_no from dept_manager where to_date = '9999-01-01')

方法二:利用left joinis null 进行判空取差集

select de.dept_no, de.emp_no, s.salary 
from salaries as s
join dept_emp as de on de.emp_no = s.emp_no
left join dept_manager as dm on dm.emp_no = de.emp_no
where dm.emp_no is null
and s.to_date='9999-01-01'
SQL练习 文章被收录于专栏

已完成牛客的SQL练习。接下来是算法的练习

全部评论

相关推荐

11-01 20:03
已编辑
门头沟学院 算法工程师
Amazarashi66:这种也是幸存者偏差了,拿不到这个价的才是大多数
点赞 评论 收藏
分享
11-08 10:39
门头沟学院 C++
点赞 评论 收藏
分享
4 收藏 评论
分享
牛客网
牛客企业服务