2017-07-19 7 views
-1

私のタイトルがわからないので、私が望むテーブルがあります。 結果リストのキーに基づいて別の列に値を追加してください

+------+---------+-------+ 
|LOGIN | KEY | VALUE | 
+------+---------+-------+ 
|JDE001|LASTNAME |Doe | 
|JDE001|FIRSTNAME|John | 
|RRE001|LASTNAME |Roe | 
|RRE001|FIRSTNAME|Richard| 
+------+---------+-------+ 

は、私が好きな

+------+--------+---------+ 
    |LOGIN |LASTNAME|FIRSTNAME| 
    +------+--------+---------+ 
    |JDE001|Doe  |John  | 
    |RRE001|Roe  |Richard | 
    +------+--------+---------+ 

任意のアイデア

私はこれを持っていますか?

答えて

1

単純なピボットクエリをここで使用できます。そのトリックは、特定のログインに属するレコードのペアごとにMAX()CASEの式を使用して、姓と名を別々の列にピボットさせるというものです。

SELECT 
    LOGIN, 
    MAX(CASE WHEN `KEY`='LASTNAME' THEN VALUE END) AS LASTNAME, 
    MAX(CASE WHEN `KEY`='FIRSTNAME' THEN VALUE END) AS FIRSTNAME 
FROM yourTable 
GROUP BY LOGIN 

出力:ここ

enter image description here

デモ:

Rextester

+0

何回あなたはこれらの質問に答えるために行くのではなく、重複したとして、それらを閉鎖しています? – Shadow

+0

@ Shadowデータは私には本当に見えたので、宿題のダンプではないと思った。確かに、少しの努力が示されましたが、それは本当の質問のようでした。 –

+0

質問が宿題か本当の質問かは問われません。もし前に答えがあったらそれは重複しています。これは私が今日遭遇した4番目のMySQLのピボットテーブルの質問です。 – Shadow

関連する問題