ID | ParentID | description
1 | null | Company
2 | 1 | Department
3 | 2 | Unit1
4 | 2 | Unit2
5 | 4 | Unit3
6 | 4 | Unit4
와 테이블을 가지고 다음과 같은 결과 표시한다고 가정한다 재귀 쿼리 작업입니다
:
을ID | ParentID | description
1 | null | Company
2 | 2 | Department
3 | 2 | Unit1
4 | 2 | Unit2
5 | 2 | Unit3
6 | 2 | Unit4
물론 하위 및 부대의 수는 더 많습니다. 기본 퀘스트는 상위 및 하위 수준에 대해 parentId를 표시하는 것입니다. 이 아이디어를 얻기위한 아이디어가 있습니까?
지금까지 난 단지
WITH cte (ID, ParentID, description)
AS
(
SELECT ID, ParentID, description
FROM T1
UNION ALL
SELECT e.ID, e.ParentID, e.description
FROM T2 AS e
JOIN cte ON e.ID = cte.ParentID
)
SELECT
cte.ID, cte.ParentID, cte.description
FROM cte
cte.ParentID is not null
SQL Fiddle에서 이것을 시험해보십시오. –