이전 포스팅에서
1. Oracle 에서 계층형 쿼리 사용법
2. Mysql 의 WITH 절
에 대해서 다룬 포스팅이 있다.
자세한 내용은 아래 참고 포스팅 참고 바란다.
이번 포스팅에서는 Mysql 에서 계층형 쿼리를 사용하는 방법이다.
바로 본론으로 들어가
예시 코드와 데이터를 먼저 확인해보면 아래와 같다.
- 데이터
id | parent_id |
1 | null |
2 | 1 |
3 | 1 |
4 | 2 |
5 | 2 |
6 | 3 |
7 | 3 |
위 데이터를 그림으로 나타내면 아래와 같다.
└── 1
└── 2
│ └── 4
│ └── 5
└── 3
└── 6
└── 7
그럼 이제 이 데이터로 계층형 쿼리를 뽑아보면 아래와 같다.
WITH RECURSIVE sub_table (id,parent_id) AS ( SELECT id, parent_id FROM main_table WHERE id = 1 UNION ALL SELECT t.id, t.parent_id FROM main_table t, sub_table r WHERE t.parent_id = r.id ) SELECT * FROM sub_table ; |
id = 1 에 설정된 id 를 기준으로 하위 데이터를 모두 보여준다.
참고 포스팅
https://thenicesj.tistory.com/493
[Oracle] 계층형 쿼리 사용법
계층형 쿼리라고 오라클에서 존재하는 문법이 있다.테이블 내에서 예를들어ab대한민국서울서울송파구서울강남구송파구방이동송파구문정동이와 같이 a는 무조건 상위 개념이고 b는 무조건 하
thenicesj.tistory.com
https://thenicesj.tistory.com/1104
[Mysql] WITH 절 구문
Mysql 에서 사용 가능한 WITH 절은 서브쿼리/가상테이블 을 미리 생성해두고, 언제든지 재사용이 가능한 공통 테이블 표현식(CTE, Common Table Expression) 을 정의하는 방법이다. 가독성도 높이고 재사용
thenicesj.tistory.com
'IT > Database' 카테고리의 다른 글
[Error] with is not valid at this position for this server version (11) | 2024.11.05 |
---|---|
[Mysql] WITH 절 구문 (16) | 2024.11.02 |
[Mysql] ROWNUM 사용 (12) | 2024.10.10 |
[Mysql] [Error] ERROR 1426: Too-big precision 10 specified for 'column'. Maximum is 6. (13) | 2024.10.08 |
[Mysql] can't create test file lower-test (11) | 2024.10.04 |
댓글