2011-08-29 45 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

你即将加入B_ID到C_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

这将为TABLE_C中的所有行检索C_DESC,这些行的B_ID与A_ID = 4的任何TABLE_B行匹配。如果您只获取一行,则TABLE_B中有一行,A_ID = 4,TABLE_C中有一行,B_ID与在TABLE_B行中。 –