#第一版 ,这是取出经理的薪水     
# (select
#       mg_salary.dept_no,
#       mg_salary.emp_no,
#       mg_salary.salary
# from
# (select 
#       manager_no.dept_no,
#       manager_no.emp_no,
#       sa.salary
# from
# (select
#       ede.emp_no,
#       dm.dept_no
# from
# (select
#       e.emp_no,
#       de.dept_no
# from
#     employees e
# inner join
#     dept_emp de
# on
#     e.emp_no = de.emp_no) as ede
# inner join
#     dept_manager dm
# on
#     ede.emp_no = dm.emp_no) as manager_no
# inner join 
#     salaries sa
# on
#     manager_no.emp_no = sa.emp_no) as mg_salary)

#这是第二版
select yg.dept_no,yg.emp_no,yg.salary from
(select de.dept_no,yuangong_no.emp_no,sa.salary
from
((select em.emp_no
from employees em
where em.emp_no not in 
(select dm.emp_no
from dept_emp de inner join dept_manager dm on
de.emp_no = dm.emp_no)) as yuangong_no
inner join dept_emp de on yuangong_no.emp_no = de.emp_no
inner join salaries sa on yuangong_no.emp_no = sa.emp_no))
as yg

我一开始思路是从头直接内连接,然后这样找到就是经理的薪水,然后找到经理薪水之后,再用note in经理薪水,这样就可以取出员工的薪水。但是发现这样太复杂了。

第二次的思路: 我一开始就在部门表,和员工序号表当中,用员工序号内连接得到经理的序号, 然后 这一步就直接用not in,然后就可以取出员工的序号,剩下的思路就和 一开始一样, 用员工的序号类连接部门表、薪水表,就可以取出员工的所有信息。