MySQLで縦型を横型に(擬似)変換する(GROUP BYでも全ての値を取り出す)方法

普通GROUP BYしたときには、まとめられたレコードのうちどれか1レコードだけが取れます。
GROUP_CONCATを使うと、1レコードではなくて全レコードを連結した値を取り出せます。

MySQL :: MySQL 5.6 リファレンスマニュアル :: 12.19.1 GROUP BY (集約) 関数
マニュアルには、生徒の名前でGROUP BYして、テストの点数をカンマ区切りで取り出す例が載ってます。

で、GROUP_CONCATはGROUP BYしなくても使えます。

SELECT c1 from t1;
+----+----+
| c1 | c2 |
+----+----+
| 1  | a  |
| 2  | b  |
| 3  | c  |
+----+----+
SELECT GROUP_CONCAT(c1), GROUP_CONCAT(c2) from t1;

これでカラムc1の全ての値がカンマ区切りで取得できます。

+------------------+------------------+
| GROUP_CONCAT(c1) | GROUP_CONCAT(c2) |
+------------------+------------------+
| 1,2,3            | a,b,c            |
+------------------+------------------+

(動かしてないけど多分動くと思います・・・。動かなかったらごめん)