2013. 5. 30. 13:27ㆍ99. 정리전 - IT/15. SQL 따라잡기
계층형 게시판 같이
트리구조로 되어 있는 DB를 삭제, 정렬, 기타 등등 트리구조에서 편하게 사용
형태 |
글번호 |
그룹 |
뒙쓰 |
시퀀스 |
부모글 |
1 |
1 |
1 |
0 |
1 |
0 |
└ 3 |
3 |
1 |
1 |
2 |
1 |
│ └ 5 |
5 |
1 |
2 |
3 |
3 |
│ └ 6 |
6 |
1 |
3 |
4 |
5 |
└ 2 |
2 |
1 |
1 |
5 |
1 |
└ 4 |
4 |
1 |
2 |
6 |
2 |
사용법 ) 3번글을 지우려한다면 그 하위 답변인 5,6번 게시물도 지워져야 한다.
DELETE FROM S_BOARD
WHERE 글번호 IN (
SELECT *
FROM S_BOARD
START WITH 글번호 = 3 //시작하는 부분
CONNECT BY PRIOR 글번호 = 부모글 //검색 대상을 트리형태로 검색
ORDER BY 그룹 DESC, 순서
)
* prior의 위치
- connect by prior 자식컬럼 = 부모컬럼 => 부모에서 자식으로 트리 구성
- connect by 자식컬럼 = prior 부모컬럼 => 자식에서 부모로 트리 구성