2011-08-29 6 views
-1

다음 관계가있는 테이블이 3 개 있습니다.SQL 서버 쿼리 도움말

TABLE_A: 
A_ID 
Name 

TABLE_B: 
B_Id 
B_DESC 
A_ID 

TABLE_C: 
    C_ID 
    C_DESC 
    B_ID 

결과를 얻으려는 다음 쿼리를 작성하려고합니다. 각 A_ID에 대해 TABLE_B에는 많은 행이 있고 TABLE_C에는 각 B_ID에 대한 행이 많이 있습니다. 결과에 검색어를 쓰는 방법을 알려주십시오. 당신의 도움을 주셔서 감사합니다.

SELECT B_ID, B_DESC, C_DESC FROM TABLE_B B JOIN TABLE_C C on B.B_Id = C.C_ID WHERE A_ID = 4 

서식

나는 얻기 위해 노력하고 있어요 : 당신의 도움에 대한

B_ID B_DESC 
     C_DESC1 
     C_DESC2 
     ....... 
    B_ID B_DESC 
     C_DESC1 
     C_DESC2 
     C_DESC3 

감사합니다. 이것은 당신이 시작하는 것이다

+0

을 내 쿼리를 잘 생각하지 않습니다. 나는 A_ID에 대한 많은 결과를 얻으려고 노력하고있다. – nav100

답변

0

...

SELECT * FROM TABLE_A A INNER JOIN TABLE_B B ON (B.A_ID = A.A_ID) INNER JOIN TABLE_C C ON (C.B_ID = B.B_ID) WHERE A.A_ID = 4

0
select * 
from TABLE_A ta 
join TABLE_B tb on tb.A_ID = ta.A_ID 
join TABLE_C tc on tc.B_ID = tb.B_ID 
where ta.A_ID = 4 
1

당신은 C_ID하는 B_ID에 가입하고; 다음 사항을 확인하시기 바랍니다

SELECT 
B_ID, 
B_DESC, 
C_DESC 
FROM 
TABLE_B B 
JOIN TABLE_C C 
    on B.B_ID = C.B_ID 
WHERE A_ID = 4 
+0

이 쿼리는 TABLE_C의 한 행만 쿼리합니다. 각 TABLE_B 행에 대해 TABLE_C에 많은 행이 있습니다. TABLE_B와 TABLE_C 사이의 마스터 세부 레코드를 가져 오려고합니다. – nav100

+0

이렇게하면 A_ID = 4 인 TABLE_B 행과 일치하는 B_ID가있는 TABLE_C의 모든 행에 대한 C_DESC가 검색됩니다. 하나의 행만 가져 오는 경우 A_ID = 4 인 TABLE_B와 B_ID가 일치하는 TABLE_C의 행이 하나 있습니다 TABLE_B 행에 –