使用MySQL语句连接两行

时间:2012-09-03 08:47:41

标签: mysql sql select

我正在寻找一个可以将同一个表的两行连接在一起的SQL语句。

目前,我的表格如下:

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

如您所见,有两行具有相同的LocationName和StationName。唯一的区别是在时间段之间,内部分配了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行。这就是我想要的。有什么想法吗?

1 个答案:

答案 0 :(得分: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