0

我有一个表格,其中下面两列定义了人和经理的关系。如果我必须获取属于特定经理的所有人以及所有间接报告人,那么最好的方法是什么?

还有如何针对某个级别执行此操作,例如获取特定 personid 的所有用户到级别 2 或 n 等

PERSONID REPORTTO_PERSONID
2              1
3              1
4              1
5              1
6              4
7              4
8              7
9              2
4

1 回答 1

0

这将递归地找到所有向 personid = 2 报告的人

level表示到start with条件中指定的行的相对距离。不是层次结构中的整体级别。

select *
from (
  select personid, 
         reportto_personid, 
         level as lvl
  from the_table
  start with personid = 2
  connect by prior personid = reportto_personid
) t 
where lvl <= 2;

更多详细信息在手册和本页右侧列出的所有问题中。

于 2013-07-04T10:34:56.770 回答