2014-03-04 54 views
0

我正在从两个表的查询中查找此结果。希望将第二个表中的结果合并为一列。 (TXM,TRD)。我的大脑忘记了如何在MS Sql中执行此操作:从一个带有子选择连续行的表中选择结果

**FirstName LastName Training** 
    Tom  Smith TXM, TRD 


**Table 1** 
Id FirstName LastName 
1 Tom  Smith 

**Table 2** 
UserId Training 
1  TXM 
1  TRD 

在此先感谢您的帮助。

+0

但你的解剖部位还记得! – Strawberry

+0

无论如何,它被称为JOIN – Strawberry

回答

1

您正在寻找的STUFF-FOR XML PATH('')招:

SELECT FirstName, LastName, 
    STUFF((SELECT ', ' + Training 
      FROM [Table 2] t2 
      WHERE t2.UserId = t1.Id 
      FOR XML PATH('')), 1, 2, '') AS Training 
FROM [Table 1] t1 

FOR XML PATH('')创建一个从结果集的连接字符串,并STUFF前两个字符没事取代,删除多余的逗号和空格。

不要忘记子查询必须包含在一对括号中。

+0

工程就像一个魅力,谢谢。本来没想到有一个STUFF函数。 – Zippy

相关问题