계층형 게시판 같이 트리구조로 되어 있는
디비를 삭제, 정렬, 기타 등등 트리구조에서 아주아주아~~~~~~~주 편하게 사용할 수 있다.
글번호 | 그룹 | 단계 | 순서 | 부모글 | |
1 | 1 | 0 | 1 | 0 | 1 |
3 | 1 | 1 | 2 | 1 | 3 |
5 | 1 | 2 | 3 | 3 | 5 |
6 | 1 | 3 | 4 | 5 | 6 |
2 | 1 | 1 | 5 | 1 | 2 |
4 | 1 | 2 | 6 | 2 | 4 |
사용법 ) 3번글을 지우려한다면 그 하위 답변인 5,6번 게시물도 지워져야 한다.
이때 쿼리 짜낼려고 별짓을 다 했는데; 간단한 방법이 있었으니..두둥~
delete from s_board
where 글번호 in (
select *
from s_board
start with 글번호 = 3 //시작하는 부분
connect by prior 글번호 = 부모글 //검색 대상 을 트리형태로 검색
order by 그룹 desc, 순서
)
요롷게 start with ~ connect by prior 을 써주면 된다.
* prior의 위치
- connect by prior 자식컬럼 = 부모컬럼 => 부모에서 자식으로 트리 구성
- connect by 자식컬럼 = prior 부모컬럼 => 자식에서 부모로 트리 구성
'DB > Oracle' 카테고리의 다른 글
| 아카이브 용량 증설 (0) | 2016.02.04 |
|---|---|
| 자주 사용하는 함수 (0) | 2016.02.04 |
| 쿼리 짤때 좋은 참고 사이트 (0) | 2016.02.04 |
| ORDER SIBLINGS BY (0) | 2016.02.04 |
| CASE ~ WHEN ~ THEN ~ ELSE ~ END (0) | 2016.02.04 |