题解 | #获取所有非manager员工当前的薪水情况#
获取所有非manager员工当前的薪水情况
http://www.nowcoder.com/practice/8fe212a6c71b42de9c15c56ce354bebe
/*
分析: 需要用的表
10001 d001 10002
select dee.emp_no,dee.dept_no
from dept_emp as dee left outer join dept_manager as dem
on dee.dept_no = dem.dept_no
where dee.emp_no <> dem.emp_no
*/
#然后用新表1和原来的salary表内连接,查出非manager员工编号(来自新表1)对应的薪资(salary表)
select
s1.dept_no,
s1.emp_no,
s.salary
from (select dee.emp_no,dee.dept_no
from dept_emp as dee left outer join dept_manager as dem
on dee.dept_no = dem.dept_no
where dee.emp_no <> dem.emp_no #表连接好后才会进行where子句完成筛选
) as s1
inner join salaries as s
where s1.emp_no = s.emp_no;
分析: 需要用的表
构建新表1:
目的:查非manager的员工:(输出结果如下)
dee.emp_no dee.dept_no dem.emp_no10001 d001 10002
select dee.emp_no,dee.dept_no
from dept_emp as dee left outer join dept_manager as dem
on dee.dept_no = dem.dept_no
where dee.emp_no <> dem.emp_no
*/
#然后用新表1和原来的salary表内连接,查出非manager员工编号(来自新表1)对应的薪资(salary表)
select
s1.dept_no,
s1.emp_no,
s.salary
from (select dee.emp_no,dee.dept_no
from dept_emp as dee left outer join dept_manager as dem
on dee.dept_no = dem.dept_no
where dee.emp_no <> dem.emp_no #表连接好后才会进行where子句完成筛选
) as s1
inner join salaries as s
where s1.emp_no = s.emp_no;