2014-09-01 3 views
1

SQL Server 2008 데이터베이스가 있습니다.하위 및 상위 범주를 기반으로 열 선택

Level1 Level2 Level3 
    A  B  C 
    D  E  F 

내 테이블의 모든 수준 1 범주 자녀 LEVEL2 한 : 나는 다음과 같은 구조 I는 다음과 같은 계층 구조로 형식의 이름 열을 선택합니다

CatID ParentCatID NAME Level 
1  NULL  A  1 
2   1   B  2 
3   2   C  3 
4  NULL  D  1 
5   4   E  2 
6   5   F  3 
7  NULL  G  1 
8   7   H  2 

있는 테이블을 가지고있다. 마찬가지로 모든 level2 하위에는 level3 하위가 있습니다. 그러면 원하는 형식으로 데이터를 가져올 수 있습니다.

+0

당신은 깊은 세 가지 수준 건가요? 아니면 무한히 깊어 질 필요가 있습니까? (후자는 Common Table Expressions가 필요합니다.) –

+0

고맙게도 해당 레벨은 3 단계입니다. – MarsOne

답변

2

그것은이 같은 간단한 쿼리 :

select 
    C1.NAME as Level1, 
    C2.NAME as Level2, 
    C3.NAME as Level3 
from Categories C1 
inner join Categories C2 
    on C2.ParentCatId = C1.CatId 
inner join Categories C3 
    on C3.ParentCatId = C2.CatId 
where C1.Level = 1 and C2.Level = 2 and C3.Level = 3 and 
+0

어떻게 든 구문 오류가 발생합니다 – MarsOne

+1

죄송합니다. 수정 됨. – JotaBe

+0

그 작업. 너는 남자 야. – MarsOne

관련 문제