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

ご覧のとおり、LocationNameとStationNameが同じ2つの行があります。唯一の違いは、タイムスロットの間に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 に答える