2011-02-04 17 views
1

を変更することができます制限付き順:のMySQLを選択し、だから私はテーブルを持っている

id  uid  points  gameid 
-------------------------------------- 
1  34  50   2 
2  12  40   2 
3  45  30   2 
4  40  30   2 
5  23  20   2 

は、だから私、私の目標はポイントに基づいて上位3選手を取得することです。

SELECT * FROM table WHERE gameid = 2 ORDER BY points DESC LIMIT 3 

しかし、上位3人が、異なる点があり、この唯一の作品:だからイベントにUID 40は、上記の次のクエリは、私のために働くだろう20のPTSを持っていました。トップ3の選手を獲得する方法が必要ですが、ポイントが同じ場合はさらに選ぶ方法が必要です。

答えて

3
SELECT t.* 
FROM table t JOIN (
    SELECT points 
    FROM table r 
    WHERE r.gameid = 2 
    ORDER BY r.points DESC 
    LIMIT 3 
) tr ON t.points = tr.points 
WHERE t.gameid = 2 
+0

スクラムマイスター:ありがとう! – bMon

関連する問題