2016-04-14 27 views
0

我有三張表。我已經使用查詢連接了它,但我想用逗號分隔結果而不是在不同的行上顯示結果。Sql加入地圖並用逗號分隔結果

1臺

ProgrammeId | Name 
==================== 
1 |Software Engineering           
2 | Game Design 

第二臺

CoordinatorId| CoordinatorName 
==================== 
1 |Bob           
2 | Ted 

3D表

ProgrammeId| CoordinatorId 
==================== 
1 | 1           
1 | 2 
2 | 1 

這是一個查詢。

SELECT a.ProgrammeId, a.Name, c.NameCoordinator 
FROM Programme a 
--Joining maptable for Programme and Coordinator 
INNER JOIN ProgrammeCoordinators b 
ON a.ProgrammeId = b.ProgrammeId 
INNER JOIN Coordinator c 
ON b.CoordinatorId = c.CoordinatorId 

輸出將是類似的東西:

ProgrammeId| Name | CoordinatorName 
================================== 
1 | Software Engineer | Bob           
1 | Software Engineer | Ted 
2 | Game Design | Ted 

我如何可以單獨顯示這一點:

1 | Software Engineer | Bob, Ted 
+0

做你真的需要一個逗號?會不會有一個XML文檔做得更好,像這樣:' Bob Ted'? – Quassnoi

+0

這經常被稱爲另一種方式,爲什麼不sql服務器有一個像mysql的group_concat。好消息。該問題已被問及已回答http://stackoverflow.com/a/5981860/1158842。也許對你來說更好的例子是http://stackoverflow.com/a/17591536/1158842 –

回答

0

如果你的名字是長度爲100:

SELECT a.ProgrammeId, a.Name(Name,' ',100), c.NameCoordinator 
FROM Programme a 
--Joining maptable for Programme and Coordinator 
INNER JOIN ProgrammeCoordinators b 
ON a.ProgrammeId = b.ProgrammeId 
INNER JOIN Coordinator c 
ON b.CoordinatorId = c.CoordinatorId 
+0

什麼是「標題」?不這樣工作。 – Antoshjke

+0

對不起,它應該是列的名稱(我編輯我的文章) – MackTank

+0

您可以添加 - CoordinatorName(CoordinatorName,'',100) - 並將所有列對齊到右側。不要忘了自定義長度。 – MackTank