2012-09-03 57 views
1

我正在查找可以將同一表的兩行連接在一起的SQL語句。使用MySQL語句連接兩行

目前,我的表看起來像這樣:

LocationName | StationName | 12:00 - 13:00 | 13:00 - 14:00 | 15:00 - 16:00 
T2   | Entrance | Michael  | Michael  | Michael 
T2   | Entrance | Joyce   | Joyce   | Joyce 

正如你所看到的,有2行具有相同LOCATIONNAME和工作站名稱。唯一的區別是在時間段內,有2個人在裏面分配。我的目標是使用mysql語句將這兩行連接到1。

我希望它看起來像這樣:

LocationName | StationName | 12:00 - 13:00 | 13:00 - 14:00 | 15:00 - 16:00 
T2   | Entrance | Michael Joyce | Michael Joyce | Michael Joyce 

正如你可以看到,2不同的名字在同一列下降,只有1行。這就是我想要的。有任何想法嗎?

回答

6

使用GROUP_CONCAT

SELECT LocationName, 
     StationName , 
     GROUP_CONCAT(`12:00 - 13:00` SEPARATOR ' ') `12:00 - 13:00`, 
     GROUP_CONCAT(`13:00 - 14:00` SEPARATOR ' ') `13:00 - 14:00`, 
     GROUP_CONCAT(`15:00 - 16:00` SEPARATOR ' ') `15:00 - 16:00` 
FROM tableName 
GROUP BY LocationName, 
      StationName 

SQLFiddle Demo