9

ソーステーブルの行データを出力のヘッダーとして使用してクエリ出力を作成する方法について、誰かが助けてくれますか?説明については、以下を参照してください。

例えば

行データ:

+-----------+----------+
| colHeader | value    |
+-----------+----------+
| Header1   | value 1  |
+-----------+----------+
| Header2   | value 2  |
+-----------+----------+
| Header3   | value 3  |
+-----------+----------+

出力:

+-----------+-----------+-----------+
| Header1   | header2   | Header3   |
+-----------+-----------+-----------+
| Value 1   | value 2   | Value 3   |
+-----------+-----------+-----------+

出来ますか??

これが私のMySQLスクリプトです。それが正しい方法かどうかはわかりません。上記の出力にどのように到達できるかについてのアイデアはありますか?

SELECT t1.value AS `Header1`,
       t2.value AS `Header2`,
       t3.value AS `Header3`
  FROM (SELECT * FROM table1 WHERE colHeader='Header1') t1
  JOIN (SELECT * FROM table1 WHERE colHeader='Header2'3) t2
  JOIN (SELECT * FROM table1 WHERE colHeader='Header3') t3;
4

1 に答える 1

11

これはどう??

SELECT  
  GROUP_CONCAT(if(colHeader = 'Header 1', value, NULL)) AS 'Header 1', 
  GROUP_CONCAT(if(colHeader = 'Header 2', value, NULL)) AS 'Header 2', 
  GROUP_CONCAT(if(colHeader = 'Header 3', value, NULL)) AS 'Header 3' 
FROM myTable; 

デモ

以下のデモ2GROUP BYに示すように、IDのデータがさらにある場合は、ステートメントが必要になることに注意してください。

デモ2

于 2012-06-28T09:47:22.233 に答える