1

我想通过事先使用 oracle connect 来获取孩子和一个上层父信息?

例如以下查询检索子信息和父 ID,

SELECT last_name, employee_id, manager_id, LEVEL
  FROM employees
  START WITH employee_id = 100
  CONNECT BY PRIOR employee_id = manager_id

但我也想获得家长信息

  LAST_NAME                 EMPLOYEE_ID MANAGER_ID      LEVEL   MANAGER_NAME
 ------------------------- ----------- ---------- ----------------------------
 King                              100                     1         ?
 Cambrault                         148        100          2         ?
 Bates                             172        148          3         ?
 Bloom                             169        148          3         .
 Fox                               170        148          3         .

我该如何处理这个问题,当我通过先连接选择孩子后应用左连接时,对象顺序是混合的。

4

1 回答 1

3

您可以参考prior选择列表中的值:

SELECT last_name, employee_id, manager_id, LEVEL, prior last_name as manager_name
  FROM employees
  START WITH employee_id = 100
  CONNECT BY PRIOR employee_id = manager_id;

LAST_NAME                 EMPLOYEE_ID MANAGER_ID      LEVEL MANAGER_NAME            
------------------------- ----------- ---------- ---------- -------------------------
King                              100                     1                          
Kochhar                           101        100          2 King                     
Greenberg                         108        101          3 Kochhar                  
Faviet                            109        108          4 Greenberg                
...
Cambrault                         148        100          2 King                     
Bates                             172        148          3 Cambrault                
Bloom                             169        148          3 Cambrault                
Fox                               170        148          3 Cambrault                
...
于 2016-06-21T12:04:42.543 回答