Phpmyadmin
如何為每位使用者獲得獨特的高分
我有以下表格:users,highscores
我想在高分中獲得前十名的最佳成績。分數應該是唯一的,即每個使用者一個分數。我嘗試使用
INNER JOIN
,GROUP
但這沒有返回正確的數據。我得到了正確的 uid、分數、別名和電子郵件,但時間不正確。好像是取自另一個高分帖。如何獲得正確的數據?一旦我們找到“最佳分數”,我就想要來自完全相同的文章的所有其他內容(時間)。SELECT UID, ALIAS, EMAIL, SCORE, TIME FROM users t INNER JOIN (SELECT user_uid, MAX(score) as SCORE, value1 as TIME FROM highscores GROUP BY user_uid) x ON x.user_uid = t.uid ORDER BY SCORE DESC LIMIT 0, 10
分別從高分錶中提取時間MySQL預設
不遵守 ANSI 標準聚合:因此您的數據不可靠
SELECT u.UID, u.ALIAS, u.EMAIL, h.SCORE, h.value1 AS TIME FROM ( SELECT user_uid, MAX(score) as SCORE FROM highscores GROUP BY user_uid ) x JOIN highscores h ON x.user_uid = h.user_uid AND x.SCORE = h.SCORE JOIN users u ON h.user_uid = u.uid ORDER BY h.SCORE DESC LIMIT 0, 10
這假設每個使用者沒有多個具有相同值的高分。
如果你這樣做,你需要一個帶有聚合的第二個派生表來嵌套 x/h JOIN