如何从SQL Server 2008中的多个表中获取不同的行?
问题描述:
我有两个表假设tableA
和tableB
:如何从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_Id
在tableA
?
这里是我的尝试:
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
答
我不知道为什么这止跌” 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
'select distinct'适用于整个ROW,而不仅仅是单个字段。例如'选择不同的富,明显的酒吧,巴斯'不会工作。 – 2013-03-11 17:32:05
您的SQL看起来应该会生成所需的结果。你真的看到了什么? – 2013-03-11 17:36:03
“我在这里看的是什么”是指这是你得到的(这是错误的),或者这是你正在寻找的东西,但不是你所得到的?无论哪种情况,您能否在问题中添加更多细节,或者更清楚您的意思? – 2013-03-11 17:44:41