1

我正在寻找可以将同一张表的 2 行连接在一起的 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

如您所见,有 2 行具有相同的 LocationName 和 StationName。唯一不同的是,在时间段之间,里面分配了2个人。我的目标是使用 mysql 语句将这 2 行合并为 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 行。这就是我想要的。有任何想法吗?

4

1 回答 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 演示

于 2012-09-03T08:50:41.093 回答