2012-05-07 7 views
1

イベント賞のすべてのデータを1行に表示するクエリを取得しようとしています。たとえば、これは私のテーブルの例です。結果は以下のように見えるようにするために私が欲しいものMySQLサブクエリの情報を1行に表示

Event_id Place Money 
101   1  120 
101   2  60 
101   3  30 
102   1  100 
102   2  50 
102   3  25 

は次のようになります。これを実現するために

Event_id First Second Third 
101   120  60  30 
102   100  50  25 

任意の助けいただければ幸いです。

答えて

4

希望します。あなたは、SQLのトリックについての詳細を学びたい場合は

SELECT Event_ID, 
      GROUP_CONCAT(IF(place = 1, `money`, NULL)) `First`, 
      GROUP_CONCAT(IF(place = 2, `money`, NULL)) `Second`, 
      GROUP_CONCAT(IF(place = 3, `money`, NULL)) `Third` 
FROM  tableName 
GROUP BY event_id 

、これを参照してください。

Common but Useful MySQL Queries

SEE on SQLFiddle

0

また、これは私

SELECT DISTINCT Event_id, (SELECT Money FROM PRIZE WHERE Place=1 AND Event_id=t.Event_id) AS First, 
(SELECT Money FROM PRIZE WHERE Place=2 AND Event_id=t.Event_id) AS Second, 
(SELECT Money FROM PRIZE WHERE Place=3 AND Event_id=t.Event_id) AS Third 
FROM PRIZE t; 
+0

のために働く前の回答の違いは何ですかあなたの答えは?以前よりも良いですか? – Hamad

関連する問題