Sql server 如何在SQLServer2008中从多个表中获取不同的行?

Sql server 如何在SQLServer2008中从多个表中获取不同的行?,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有两张表,比如说表a和表b: 表A: AID Another_A_ID 1 A 2 A 3 A 4 B 5 B 6 C 表b: 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

我有两张表,比如说
表a
表b

表A

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

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
如何在
tableA
中为每个
另一个\u A\u Id
获取
tableab.name

以下是我尝试过的:

Select distinct tA.Another_A_ID, tB.name 
from tableA tA
Inner Join tB on tA.AID = tB.AID
这会为另一个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

我不确定这为什么不能给出你期望的答案:

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;

事实上,这证明了您的查询是有效的(我的也是)。如果您遗漏了任何细节,请添加它们。

select distinct
适用于整行,而不仅仅是单个字段。e、 g.
选择distinct foo、distinct bar、baz将不起作用。您的SQL看起来应该生成所需的结果。你到底看到了什么?是“我在看什么”意味着这是你得到的(这是错误的),还是这是你正在寻找的,但不是你得到的?在任何一种情况下,你能在问题中添加更多的细节,或者更清楚你的意思吗?谢谢你们。谢谢你的快速回复。它看起来像我要找的东西。