次のような2つのテーブルがあります。
users (uid, name)
-------------------
| 1 | User 1 |
| 2 | User 2 |
| 3 | User 3 |
| 4 | User 4 |
| 5 | User 5 |
-------------------
highscores (user_id, time)
-------------------
| 3 | 12005 |
| 3 | 29505 |
| 3 | 17505 |
| 5 | 19505 |
-------------------
ハイスコアを持つユーザーと、各ユーザーの最高のハイスコアのみを照会したいと考えています。結果は次のようになります。
------------------------
| User 3 | 29505 |
| User 5 | 19505 |
------------------------
私のクエリは次のようになります。
SELECT user.name, highscores.time
FROM user
INNER JOIN highscores ON user.uid = highscores.user_id
ORDER BY time ASC
LIMIT 0 , 10
実際、これは同じユーザーの複数のハイスコアを返します。また、それらをグループ化しようとしましたが、最良の結果ではなくランダムな結果が返されたため、機能しませんでした (例: ユーザー ID 3 の場合、29505 ではなく 17505 が返されました)。
どうもありがとう!