我本能地解决了这个任务,但仍然不太明白在这种情况下自我联接是如何工作的。你能解释一下这里有什么e1和e表吗?我们从SELF JOIN获得的表在这里包含什么?
select e.first_name, e.salary, e.id, e.manager_id, e.employee_title
from employee e
join employee e1 on e1.id = e.manager_id
where e.salary > e1.salary
order by e.manager_id;
1条答案
按热度按时间jgwigjjp1#
这里的Employee表包含员工及其经理之间的分层关系。
通过Self Join,您可以获得所有员工及其直接经理(在e1.id=e.Manager_id上)。E1别名可以更好地重命名为m或mgr或其他名称,以指示它包含匹配的管理器。立即这样做选择更容易理解。
此外,在当前的WHERE条件下,您只能选择薪资高于其经理的员工。