티스토리 뷰

 

MENU_BAS라는 테이블에 MENU_ID, UPR_MENU_ID의 관계를 가지고 하위에서 상위까지 데이터를 조회하는 방법이다.

WHTH RECURSIVE를 통해 데이터를 조회하는 점을 기억하자.

WITH RECURSIVE MENU (MENU_ID, UPR_MENU_ID, MENU_NM, MENU_URL) AS (
    SELECT MENU_ID
         , UPR_MENU_ID
         , MENU_NM
         , MENU_URL
	  FROM MENU_BAS
	 WHERE MENU_ID = #{menuId}
       AND DEL_YN = 'N'
     UNION ALL
	SELECT R.MENU_ID
         , R.UPR_MENU_ID
         , R.MENU_NM
         , R.MENU_URL
	  FROM MENU_BAS R
	 INNER JOIN MENU
        ON R.MENU_ID = MENU.UPR_MENU_ID
	  AND DEL_YN = 'N'
)

SELECT MENU_ID
     , UPR_MENU_ID
     , MENU_NM
     , MENU_URL
  FROM MENU
 ORDER BY MENU_ID ASC;

 

'데이터베이스 > SQL' 카테고리의 다른 글

[SQL] WHERE 1=1 의미  (0) 2021.01.20
[SQL] MySQL SYSDATE() NOW() 차이  (0) 2021.01.20
[SQL] MySQL 주차 구하기 WEEK  (0) 2020.09.17
[SQL] MySQL 날짜 요일 구하기 및 주의사항  (0) 2020.09.01
[SQL] MySQL 대소문자 비교  (0) 2020.08.30
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함