계층 구조의 하위 항목이 주어지면 INFORMIX 계층 구조 SQL로 전체 트리를 가져옵니다.

user3244615

Informix 계층 적 SQL 쿼리에 대한 약간의 도움이 필요합니다. 다음 구조의 테이블이 있습니다.

create table empl_relation (
employee_id char(10),
manager_id char(10));

employee_id      |   manager_id
 5148                null              
 5149                5148
 5150                5149
 5151                5148
 5152                5151
 5154                5148
 5155                5154

다음 쿼리를 성공적으로 실행할 수 있습니다.

SELECT employee_id, manager_id FROM empl_relation  
    START WITH employee_id = 5148 
    CONNECT BY PRIOR employee_id = manager_id 
    ORDER  SIBLINGS BY employee_id;

위의 표에 지정된 정확한 계층 구조를 반환합니다. 그러나 나는 여기서 뭔가 다른 것을 이루려고 노력하고있다. 계층 구조의 직원 ID가 입력으로 주어지면 동일한 결과 집합을 얻으려고합니다. 예를 들어, 쿼리에서 입력 employee_id로 5154를 지정하면 입력 직원 ID의 모든 부모와 자식, 자식 및 손자 손을 가져올 수 있어야합니다. 정확히 말하면 위에서 언급 한 쿼리를 실행하여 얻은 것과 똑같은 결과 집합을 원합니다.

단일 쿼리로 달성 할 수 있습니까? 그렇다면, 이것을 달성하는 데 도움을 주시겠습니까?

                         EDIT

좋아, 나는 이것을 달성하는 한 가지 방법을 찾았지만 다음과 같이 2 개의 쿼리를 실행하는 것이 포함됩니다.

SELECT employee_id, manager_id FROM empl_relation
    START WITH employee_id = 5150 
    CONNECT BY employee_id = PRIOR manager_id 
    ORDER   SIBLINGS BY employee_id ;

다음을 반환합니다.

employee_id      |   manager_id
5148    
5149                  5148
5150                  5149

그런 다음 결과 집합을 반복 한 다음 아래 쿼리를 실행하여 전체 계층 트리를 가져옴으로써 애플리케이션 계층에서 부모 employee_id를 검색 할 수 있습니다.

SELECT employee_id, manager_id FROM empl_relation  
    START WITH employee_id = 5148 
    CONNECT BY PRIOR employee_id = manager_id 
    ORDER  SIBLINGS BY employee_id;

이것은 잘 작동하지만 단일 쿼리로 이것을 달성 할 수 있다면 정말 좋을 것입니다.

user3244615

Jonathan의 답장에 영감을 받아 다음과 같이 그의 쿼리를 조금 더 짧게 만들었습니다.

SELECT employee_id,manager_id FROM empl_relation
START WITH employee_id =
 (SELECT employee_id
   FROM empl_relation er
   WHERE er.manager_id IS NULL
   START WITH employee_id = 5150 CONNECT BY employee_id =
   PRIOR manager_id) 
 CONNECT BY
 PRIOR employee_id = manager_id
 ORDER BY employee_id;

이것은 또한 잘 작동하는 것 같습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Weka 트리를 SQL 계층 테이블의 계층 구조로 변환

분류에서Dev

AVPlayerLayer 참조를 계층 구조 위로 전달

분류에서Dev

SQL에서 (상위> 하위) 순서로 조직 단위의 계층 구조를 표시하려고합니다.

분류에서Dev

종이 js 도면 (항목 / 경로) 계층 구조

분류에서Dev

C #은 계층 구조 트리를 아래에서 위로 채 웁니다.

분류에서Dev

관리자 계층 구조를 롤 다운하기위한 SQL 쿼리

분류에서Dev

파이썬에서 사전의 계층 구조를 재구성합니까?

분류에서Dev

값을 기반으로 계층 구조 데이터를 수행하려면 어떻게해야합니까?

분류에서Dev

하위 필드가있는 플랫 목록에서 계층 구조 트리를 구성 하시겠습니까?

분류에서Dev

클래스 / 객체를 사용하지 않고 재귀 적으로 트리 계층 구조 생성

분류에서Dev

계층 구조의 데이터 표현을위한 자바 8 트리 구조에 POJO로 변환

분류에서Dev

자동으로 업데이트되는 끌어서 놓기 계층 구조 트리를 작성하는 방법

분류에서Dev

Python-YAML 사전을 구문 분석하여 계층별로 키를 가져옵니다.

분류에서Dev

Javascript로 DOM 요소를 추가하는 계층 구조

분류에서Dev

계층 구조의 사전을 목록으로 변환

분류에서Dev

Vue.js 2.0은 복잡한 계층 구조의 하위 구성 요소에 Auth :: user ()를 전달합니다.

분류에서Dev

간단한 계층 구조이지만 여전히 "키가 지정된 객체의 모든 사용은 React.addons.createFragment (object)로 래핑되어야합니다."

분류에서Dev

3 단계 계층 구조를 빠르게로드하려면 어떻게해야합니까?

분류에서Dev

(parent, child)의 단순 목록이 주어지면 계층 적 사전 트리를 만듭니다.

분류에서Dev

두 개의 다른 테이블을 결합하는 계층 구조 SQL 서버

분류에서Dev

상위-하위 계층 구조에서 최대 7 단계까지 레벨 세그먼트를 찾습니다.

분류에서Dev

SQL 및 PHP를 사용하여 서로 다른 참조 테이블에서 계층 트리 가져 오기

분류에서Dev

부모 및 자식 항목이있는 콤보 상자 계층 구조를 어떻게 구현합니까?

분류에서Dev

계층 구조를위한 Meteor 데이터베이스 설계

분류에서Dev

계층 적 하위 쿼리를 사용하여 계층 구조 경로를 작성하는 방법

분류에서Dev

부모-자식 트리 계층 구조가있는 SQL 쿼리

분류에서Dev

"중첩 된"튜플의 Seq를 맵 계층 구조로 변환하는 더 좋은 방법이 있습니까?

분류에서Dev

쉘이 프로세스 계층 구조에 속하는 위치는 어디입니까?

분류에서Dev

쉘이 프로세스 계층 구조에 속하는 위치는 어디입니까?

Related 관련 기사

  1. 1

    Weka 트리를 SQL 계층 테이블의 계층 구조로 변환

  2. 2

    AVPlayerLayer 참조를 계층 구조 위로 전달

  3. 3

    SQL에서 (상위> 하위) 순서로 조직 단위의 계층 구조를 표시하려고합니다.

  4. 4

    종이 js 도면 (항목 / 경로) 계층 구조

  5. 5

    C #은 계층 구조 트리를 아래에서 위로 채 웁니다.

  6. 6

    관리자 계층 구조를 롤 다운하기위한 SQL 쿼리

  7. 7

    파이썬에서 사전의 계층 구조를 재구성합니까?

  8. 8

    값을 기반으로 계층 구조 데이터를 수행하려면 어떻게해야합니까?

  9. 9

    하위 필드가있는 플랫 목록에서 계층 구조 트리를 구성 하시겠습니까?

  10. 10

    클래스 / 객체를 사용하지 않고 재귀 적으로 트리 계층 구조 생성

  11. 11

    계층 구조의 데이터 표현을위한 자바 8 트리 구조에 POJO로 변환

  12. 12

    자동으로 업데이트되는 끌어서 놓기 계층 구조 트리를 작성하는 방법

  13. 13

    Python-YAML 사전을 구문 분석하여 계층별로 키를 가져옵니다.

  14. 14

    Javascript로 DOM 요소를 추가하는 계층 구조

  15. 15

    계층 구조의 사전을 목록으로 변환

  16. 16

    Vue.js 2.0은 복잡한 계층 구조의 하위 구성 요소에 Auth :: user ()를 전달합니다.

  17. 17

    간단한 계층 구조이지만 여전히 "키가 지정된 객체의 모든 사용은 React.addons.createFragment (object)로 래핑되어야합니다."

  18. 18

    3 단계 계층 구조를 빠르게로드하려면 어떻게해야합니까?

  19. 19

    (parent, child)의 단순 목록이 주어지면 계층 적 사전 트리를 만듭니다.

  20. 20

    두 개의 다른 테이블을 결합하는 계층 구조 SQL 서버

  21. 21

    상위-하위 계층 구조에서 최대 7 단계까지 레벨 세그먼트를 찾습니다.

  22. 22

    SQL 및 PHP를 사용하여 서로 다른 참조 테이블에서 계층 트리 가져 오기

  23. 23

    부모 및 자식 항목이있는 콤보 상자 계층 구조를 어떻게 구현합니까?

  24. 24

    계층 구조를위한 Meteor 데이터베이스 설계

  25. 25

    계층 적 하위 쿼리를 사용하여 계층 구조 경로를 작성하는 방법

  26. 26

    부모-자식 트리 계층 구조가있는 SQL 쿼리

  27. 27

    "중첩 된"튜플의 Seq를 맵 계층 구조로 변환하는 더 좋은 방법이 있습니까?

  28. 28

    쉘이 프로세스 계층 구조에 속하는 위치는 어디입니까?

  29. 29

    쉘이 프로세스 계층 구조에 속하는 위치는 어디입니까?

뜨겁다태그

보관