2013-03-11 23 views
0

我有兩個表假設tableAtableB如何從SQL Server 2008中的多個表中獲取不同的行?

TableA

AID Another_A_ID 
1  A    
2  A 
3  A 
4  B 
5  B 
6  C 

TableB

AID Name 
1  a_a_name 
1  a_b_name 
1  a_c_name 
1  a_d_name 
2  a_a_name 
2  a_b_name 
2  a_c_name 
2  a_d_name 
3  a_a_name 
3  a_a_name 
3  a_a_name 
3  a_a_name 
4  b_a_name 
4  b_b_name 
5  b_a_name 
5  b_b_name 

我怎樣才能獲得tableB.name每個Another_A_IdtableA

這裏是我的嘗試:

Select distinct tA.Another_A_ID, tB.name 
from tableA tA 
Inner Join tB on tA.AID = tB.AID 

這將產生多個重複的行爲Another_A_ID

我尋找這裏是

Another_A_ID Name 
A    a_a_name 
A    a_b_name 
A    a_c_name 
A    a_d_name 
B    b_a_name 
B    b_b_name 
+0

'select distinct'適用於整個ROW,而不僅僅是單個字段。例如'選擇不同的富,明顯的酒吧,巴斯'不會工作。 – 2013-03-11 17:32:05

+1

您的SQL看起來應該會生成所需的結果。你真的看到了什麼? – 2013-03-11 17:36:03

+0

「我在這裏看的是什麼」是指這是你得到的(這是錯誤的),或者這是你正在尋找的東西,但不是你所得到的?無論哪種情況,您能否在問題中添加更多細節,或者更清楚您的意思? – 2013-03-11 17:44:41

回答

2

我不知道爲什麼這止跌」 t得到你所期待的答案:

SELECT a.Another_A_ID, b.Name 
    FROM dbo.tableA AS a 
    INNER JOIN dbo.TableB AS b 
    ON a.AID = b.AID 
    GROUP BY a.Another_A_ID, b.Name; 

事實上,this SQLfiddle證明您的查詢工作正常(就像我的)。如果您沒有留下任何細節,請添加它們。

+0

謝謝。它看起來像我在找什麼。 – Lakhae 2013-03-11 18:01:56

相關問題