数据库SQL实践25:获取员工其当前的薪水比其manager当前薪水还高的相关信息

思想:

题目要求获取员工其当前的薪水比其manager当前薪水还高的相关信息,当前表示to_date='9999-01-01',
结果第一列给出员工的emp_no,
第二列给出其manager的manager_no,
第三列给出该员工当前的薪水emp_salary,
第四列给该员工对应的manager当前的薪水manager_salary

首先通过条件dept_emp d inner join dept_manager e on d.dept_no=e.dept_no and d.to_date='9999-01-01' 将dept_emp和dept_manager内连接,即找到每个员工的manager

其次通过条件inner join salaries s1 on d.emp_no = s1.emp_no  and s1.to_date='9999-01-01'找出所有员工的当前工资

然后通过条件inner join salaries s2 on e.emp_no = s2.emp_no and s2.to_date='9999-01-01'找出manager的当前工资

最后通过条件where s1.salary>s2.salary找出员工工资比manager工资多的员工

select d.emp_no,e.emp_no as manager_no,s1.salary as emp_salary,s2.salary as manager_salary
from dept_emp d inner join dept_manager e on d.dept_no=e.dept_no and d.to_date='9999-01-01' 
inner join salaries s1 on d.emp_no = s1.emp_no  and s1.to_date='9999-01-01'
inner join salaries s2 on e.emp_no = s2.emp_no and s2.to_date='9999-01-01'
where s1.salary>s2.salary;

内连接的结果集需要很好的掌握

猜你喜欢

转载自blog.csdn.net/weixin_43160613/article/details/84024391