题解 | #获取所有非manager员工当前的薪水情况#
获取所有非manager员工当前的薪水情况
http://www.nowcoder.com/practice/8fe212a6c71b42de9c15c56ce354bebe
报错1
每个派生表必须有自己的别名
select de.dept_no , de.emp_no , sa.salary from (select de.dept_no , de.emp_no , dm.emp_no from dept_emp de left join dept_manager dm on de.dept_no=dm.dept_no where de.to_date='9999-01-01' and dm.to_date='9999-01-01') join salary sa on de.emp_no=sa.emp_no where sa.to_date='9999-01-01' and dm.emp_no!=sa.emp_no通过1
1.将子查询进行别名
2.猜测de.emp_no和dm.emp_no在子表里都显示为emp_no,故将dm.emp_no别名为m
3.考虑到部门可能没有经理,所以将部门员工关系表左连接经理表,保证员工不会被内连接删掉,连接部门字段产生的null值,也满足and m!=sa.emp_no
, sa.salary from (select de.dept_no , de.emp_no , dm.emp_no m from dept_emp de left join dept_manager dm on de.dept_no=dm.dept_no where de.to_date='9999-01-01' and dm.to_date='9999-01-01')a join salaries sa on a.emp_no=sa.emp_no where sa.to_date='9999-01-01' and m!=sa.emp_no