sql 2009. 5. 19. 16:02

oracle9i ]start with connect by prior~


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

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

 글번호

그룹 

단계 

순서 

부모글 

 

 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      부모컬럼 => 자식에서 부모로 트리 구성

 

 

 

참고 ) http://blog.naver.com/humanlinux?Redirect=Log&logNo=110005644075

         http://cafe.naver.com/ohsol.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=21