【发布时间】:2020-02-24 20:01:27
【问题描述】:
我认为我应该在这里使用联接,但是,我不太确定报告是如何在 SQL 中出现的,因为他们报告的员工和经理在同一个表中enter image description here
【问题讨论】:
-
欢迎来到 SO。请阅读how to ask。请贴出你的sql代码。
我认为我应该在这里使用联接,但是,我不太确定报告是如何在 SQL 中出现的,因为他们报告的员工和经理在同一个表中enter image description here
【问题讨论】:
在 Oracle 中,这将通过“CONNECT BY PRIOR”函数提供的递归函数得到最优雅的处理。正如您已经表明您在 Oracle 之外进行操作,您必须为您的表设置两次别名。此外,您还没有说明经理是否可能没有员工或员工可能没有经理——在这两种情况下,您都需要考虑“外部联接”条件。以下是简单案例的代码:每个员工都有一个经理,每个经理都有员工:
Select m.lastname manager_last,
m.firstname manager_first,
e.lastname employee_last, e.firstname employee_first
from employee_list e, employee_list m
where e.reports_to = m.employee_number
order by m.lastname, m.firstname, e.lastname, e.firstname
【讨论】: