Как получить информацию о дочернем элементе и родительском элементе верхнего уровня с помощью oracle connect by prior?

Я хочу получить информацию о дочернем элементе и родительском элементе верхнего уровня, используя oracle connect by prior?

Например, следующий запрос извлекает дочернюю информацию и родительский идентификатор,

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         .

Как я могу справиться с этой проблемой, когда я применил левое соединение после выбора дочерних элементов путем подключения по предыдущему, порядок объектов смешивается.


person user6493966    schedule 21.06.2016    source источник


Ответы (1)


Вы можете обратиться к 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                
...
person Alex Poole    schedule 21.06.2016
comment
Большое спасибо. Вот и все. - person user6493966; 21.06.2016