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

时间:2013-03-11 17:30:35

标签: sql-server sql-server-2008

我有两张桌子,比如tableAtableB

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

1 个答案:

答案 0 :(得分:2)

我不确定为什么这不会产生你期望的答案:

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证明您的查询有效(就像我的一样)。如果您遗漏了任何详细信息,请添加它们。