2014-03-04 55 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

相關問題