0
私はこのようなMySQLのテーブルを持っている:例えば、2014000は製品のペンですが、価格が異なる4種類のabcdがあります。 2014001はもう一つのprodct電話であり、そこには異なる価格の3種類のefgもあります。今私は名前と値で1つの製品を1つの行にしたいです。複数の行を複数の列と1つの行にマージする方法
id code name value
1 2014000 A 10
2 2014000 B 9
3 2014000 C 11
4 2014000 D 12
5 2014001 E 100
6 2014001 F 110
7 2014001 G 120
に対する結果:
code name1 value1 name2 value2 name3 value3 name4 value4
----------- --------- --------- --------- --------- ----------- --------- --------- ---------
2014000 A 10 B 9 C 11 D 12
2014001 E 100 F 110 G 120 null null
がテーブルT(ID INT、コードINT、NAMEのCHAR(1)、VALUE VARCHAR(10))を作成します。
(122014000、 'A' (6,2014001、 'F'、 '110')、(7,2014001、 'G'、G ' 、 '120');
----- 4行以上の行がある場合は、2行しか表示されません。どうすればよいですか?
SELECT T1.code, T2.name AS name1, T2.value AS value1, T3.name AS name2, T3.value AS value2 FROM( SELECT code,MIN(ID) AS ID1,CASE COUNT(code) WHEN 1 THEN NULL ELSE MAX(ID) END AS ID2 FROM T GROUP BY code) T1 LEFT JOIN T T2 ON T1.ID1 = T2.ID LEFT JOIN T T3 ON T1.ID2 = T3.ID
だけあなたの質問に関連するタグを使用し、適切にあなたの質問をフォーマットしてください。 – Filburt
[MySQLピボットテーブル]の複製(https://stackoverflow.com/questions/7674786/mysql-pivot-table) – Filburt