2012-05-07 2 views
1

한 번에 모든 이벤트 상금 데이터를 표시하는 쿼리를 가져 오려고합니다. 예를 들어 이것은 내 테이블의 예입니다.한 줄에 MySQL 하위 쿼리 정보 나열

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

어떤 도움을이 크게 감사하겠습니다 달성하기 : 결과가 다음과 같이하는

Event_id Place Money 
101   1  120 
101   2  60 
101   3  30 
102   1  100 
102   2  50 
102   3  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