본문 바로가기
DB/Oracle

START WITH CONNECT BY PRIOR

by Lohen 2016. 2. 4.

계층형 게시판 같이 트리구조로 되어 있는

디비를 삭제, 정렬, 기타 등등 트리구조에서 아주아주아~~~~~~~주 편하게 사용할 수 있다.

 

 글번호

그룹 

단계 

순서 

부모글 

 

 1

1

 3

  3 

 5

3

    5

 6

4

      6

 2

5

  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