题解 | #获取所有非manager员工当前的薪水情况#
获取所有非manager员工当前的薪水情况
https://www.nowcoder.com/practice/8fe212a6c71b42de9c15c56ce354bebe
select
de.dept_no,
de.emp_no,
sa.salary
from dept_emp de
join salaries sa
on de.emp_no=sa.emp_no
where de.to_date='9999-01-01'
and de.emp_no not in
(select
emp_no
from dept_manager
de.dept_no,
de.emp_no,
sa.salary
from dept_emp de
join salaries sa
on de.emp_no=sa.emp_no
where de.to_date='9999-01-01'
and de.emp_no not in
(select
emp_no
from dept_manager
where to_date='9999-01-01')
本题知识点:
1、表连接找准连接键,注意部门经理表的emp_no不是全部员工的编号,因此考虑dept_emp、salaries两表连接,employees表没有目标内容直接忽略;
2、注意筛选的是在职员工de.to_date='9999-01-01' 表示未离职;
3、在de.emp_no里,用not in + 一整列的数值,筛选剔除掉部门经理表的emp_no;
4、from...join...on...and...后面的and最好用where...and...来代替,本质上都是筛选。