Today I Run
[SQL] 쿼리로 트리구조 출력하기
조핑구
2024. 5. 9. 10:28
조직도나 댓글-대댓글처럼 트리 형태의 구조를 갖는 데이터들을 트리 depth에 맞게 출력 할 수 있다.
WITH RECURSIVE CommentTree AS (
SELECT id, parent_id, content, 0 AS depth
FROM comment
WHERE parent_id IS NULL
UNION ALL
SELECT c.id, c.parent_id, c.content, ct.depth + 1
FROM comment c
JOIN CommentTree ct ON c.parent_id = ct.id
)
SELECT *
FROM CommentTree
ORDER BY COALESCE(parent_id, id) ASC, id asc;
SELECT
c.id,
c.parent_id,
c.content,
LEVEL - 1 AS depth
FROM
comment c
START WITH
c.parent_id IS NULL
CONNECT BY
PRIOR c.id = c.parent_id
ORDER SIBLINGS BY
c.parent_id NULLS FIRST,
c.id;