Q&A

  • 쿼리문 좀 봐주세여
SELECT PARENT_ID, FIELD_ID, FIELD_NAME, LEVEL
FROM SM_FUNCS_TB
CONNECT BY PRIOR FIELD_ID = PARENT_ID
START WITH PARENT_ID = 'ROOT'

위와 같이 CONNECT BY 문을 사용해서 트리형태로 나타내고자 합니다.

그런데..

SELECT A.PARENT_ID, A.FIELD_ID, A.FIELD_NAME, B.AUTHORITY, LVL
FROM (SELECT PARENT_ID, FIELD_ID, FIELD_NAME, LEVEL LVL
FROM SM_FUNCS_TB
CONNECT BY PRIOR FIELD_ID = PARENT_ID
START WITH PARENT_ID = 'ROOT') A, SM_FUNCGROUP_TB B
WHERE B.FIELD_ID = A.FIELD_ID
AND B.GROUP_CODE = '01'

위와 같이 다른 테이블을 하나 더 조인해서
원하는 코드값에 따른 트리형태를 나타내려 하니..
맘대로 되지가 않네요..

고수님들의 도움 부탁 드립니다.
ㅠ.ㅠ

참고로 데이터베이스는 오라클입니다.
1  COMMENTS
  • Profile
    마스크맨 2003.12.16 19:27
    SELECT A.PARENT_ID, A.FIELD_ID, A.FIELD_NAME, B.AUTHORITY, A.LVL
      FROM (SELECT PARENT_ID,
                   FIELD_ID ,
                   LPAD(' ', (LEVEL-1) * 2, ' ') || FIELD_NAME FIELD_NAME,
                   LEVEL LVL
              FROM SM_FUNCS_TB
              CONNECT BY PRIOR FIELD_ID = PARENT_ID
              START WITH PARENT_ID = 'ROOT'
           ) A,
           SM_FUNCGROUP_TB B
      WHERE B.FIELD_ID   = A.FIELD_ID
        AND B.GROUP_CODE = '01';

    이렇게하면 되지 않을지여.......