报错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