2016-06-07 4 views
-1

에 조인 :내가 두 테이블이 SQL 서버

  • 테이블 A (ID, 이름, 링크, 유형, CID)
  • 테이블 B를 (ID, 이름, 링크,의 ImagePath, 가격, CID)
는 내가 가진 문제는 내가 같은 테이블 A에서 ID

ID  Name  Type   CID 
1  Apple Category  0 
2  TV  Category  0 
3  Laptop Category  0 

의 기초에이 두 테이블을 조인 할됩니다

, 애플 TV와 노트북의 ID가되고 싶어서입니다 서브 카테고리로 CID

ID  Name  Type    CID 
4  Macbook sub category  1 
5  iTV  sub category  2 
6  HP  sub category  3 

카테고리 ID가 동일한 테이블의 하위 카테고리에 속합니다. 소분류의 ID가 하위 카테고리의 ID가 CID로 테이블 B에 전달한다

ID  Name  Type    CID 
7  Applebook Child category  4 
8  TV MLT2  child category  5 
9  HP Mini  Child Category  6 

CID와 동일한 테이블 하위 카테고리로 전달 될 7 8 9

이다 어떻게 수 이 테이블에 가입하면 APPLE을 검색해야합니다. 테이블 A와 B의 apple 제품을 모두 가져야합니다. ID A의 기본에 B와 테이블 A를 결합한 다음 ID와 CID의 기본에 하위 카테고리가있는 하위 카테고리를 주 카테고리로 결합하려면 어떻게해야합니까? 어떤 결합을 사용해야합니까?

나는 조인을 거의 잘 이해하고 있지만, 내면의 바깥 쪽은 바깥 쪽이지만 내 경우에는 어떻게해야 할 지 모르겠다. 어떻게 그런 다음 당신은 그냥 보통 사용할 필요가 다른

+1

당신은 편집해야합니다 당신의 질문을 통해 실제 테이블 및 데이터를 포함하고 출력으로 원하는 것을 명확하게 보여줍니다. –

+0

카테고리 'Apple'에 대한 예상 출력을 표시하십시오. –

답변

0

에서 CID ID의 기본에 테이블 B와 자녀가되는 서브 후 자녀와 하위 내 카테고리에 가입하실 수 있습니다 여러 번 조인

select 
    C.* 
from 
    yourtable a 
    join yourtable b on a.ID = b.CID 
    join yourtable c on b.ID = c.CID 
where 
    a.name = 'Apple' 
+0

몇 번이나? 그것이 작동하는지 보자. –

+0

카테고리에 임의의 깊이 수준이있을 수 있다면 재귀 적 CTE가 필요하다. –

+0

ID가있는 '카테고리'에 '태양 카테고리'가 있고 ID에서 CID가있는 '카테고리'의 제품이 있고 하위 카테고리의 ID가 하위 카테고리의 CID 및 ID로 전달되므로 혼란 스럽습니다. 카테고리가 CID로 다른 테이블에 전달 중입니다. 이제 조인과 함께 사과 및 기타 카테고리의 모든 데이터를 원합니다. 기본 조인을 이해합니다.이 상황에서 무엇을해야할지 모르겠습니다. –