2
재귀 CTE로 계층 구조를 생성 할 수 있지만 항상 앵커를 사용했습니다 ... 최상위 수준 표시기 (parentID가 NULL 임)가있는 최상위 레코드 . 반드시 앵커가 정의되지 않은 계층 구조를 만들고 싶습니다. 나는 parentID와 childID를 가진 many to many 레퍼런스 테이블을 가지고있다. 모든 부모는 자식이 될 수 있으며 그 반대도 마찬가지입니다 (물론 순환 참조는 피함). 나는 이것이 하향식에 반대되는 상향식 접근 방식 일 것이라고 생각한다. 생각?SQL 서버 : 앵커가없는 계층 형 순환 CTE
지금까지 가지고있는 샘플을보고 싶습니다. 어쩌면 구조의 예가 사용되고 현재 시도 중입니다. 여기 사람들과 함께 놀 수있는 예제를 추가하는 [좋은 장소] (http://sqlfiddle.com/#!3/8ecfd/13)가 있습니다. – whytheq
재귀 CTE를 사용하려고하면 영구적으로 실행됩니다. 음, MAXRECURSION이 다른 값으로 설정된다는 점만 제외하면. 이미 방문한 노드를 추적하는 그래프 워킹 알고리즘이 필요하다고 생각합니다. CTE를 사용하여 그런 짐승을 어떻게 구현할 지 모르겠습니다. –
하나의 childiID로 작업하고 childID를 제공하는 경우이 쿼리는 최소한 상향식 계층 구조를 작성합니다. c는 ( ) lvl, a.parentid, a.childid로 0을 선택합니다. dbo.ParentChild a에서 여기서 childid = 1 모든 선택 LVL + 1 b.parentid은 * LVL 의해 C에서 순서를 구별 선택 ) c.parentid = C b.childid에 가입 b를 dbo.ParentChild에서 을 b.childid 연합 parentid , 어린 아이. –