如何从SQL Server 2008中的多个表中获取不同的行?

问题描述:

我有两个表假设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

我不知道为什么这止跌” 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