최상위 ID가 나올때까지 반복조회 도움 부탁드립니다 0 2 1,234

by 윤 [SQL Query] 조회 반복 [2020.11.02 16:47:34]


[TABLE DESC]

COLUMN_NAME NULLABLE COMMENT
MENU_ID   PK 메뉴ID
MENU_NM NOT NULL 메뉴명
SUPER_MENU_ID NOT NULL 상위메뉴ID
MENU_ORD NOT NULL 메뉴가 표시되는 순번

 

이러한 테이블 구조에서

예를들어,

MENU01

    └  MENU02

             └ MENU03

                    └ MENU04

이런식으로 구성된 메뉴들에 대한 정보가 담겨있을때

MENU01_MENU_NM > MEN02_MENU_NM > MENU03_MENU_NM > MENU04_MENU_NM 이런식으로 메뉴명을 경로로 나열하여 조회하고 싶습니다

sub쿼리를 만들어 from절에 계속 대입해서 돌렸더니 너무 오랜시간이 걸려서 뻗어버리네요ㅠㅠ

 

도움 부탁드립니다

by 마농 [2020.11.02 17:21:57]

DBMS 에 따라 쿼리 문법이 다릅니다.
Oracle? MSSQL? MySQL? 기타?

-- Oracle --
SELECT menu_id
     , menu_nm
     , super_menu_id
     , menu_ord
     , SUBSTR(SYS_CONNECT_BY_PATH(menu_nm, '>'), 2) menu_path
  FROM t
 START WITH super_menu_id IS NULL
 CONNECT BY PRIOR menu_id = super_menu_id
 ORDER SIBLINGS BY menu_ord
;

 


by 윤 [2020.11.05 09:31:55]

앗!! 다음 질문 할때는 DBMS도 같이 명시하겠습니다ㅠㅠ
답변 주신거 많은 도움 되었습니다
감사합니다!!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입