我的情況爲了記錄選擇從MySQL表日期是這樣的: 我有2 MySQL表:用戶和分數。如何通過另一臺
表用戶就是這樣的:id,name。 表得分就是這樣的:id,point,user_id;
我想要取得高分的10個用戶的名字,但我不知道我要用什麼樣的查詢。有人可以幫助我嗎?
我的情況爲了記錄選擇從MySQL表日期是這樣的: 我有2 MySQL表:用戶和分數。如何通過另一臺
表用戶就是這樣的:id,name。 表得分就是這樣的:id,point,user_id;
我想要取得高分的10個用戶的名字,但我不知道我要用什麼樣的查詢。有人可以幫助我嗎?
您可能需要使用一個INNER JOIN
查詢並獲得您需要通過points
列降序排列,並限制結果,以10
SELECT *
FROM user a
LEFT JOIN scores b
ON a.id = b.user_id
ORDER BY b.point DESC
LIMIT 10
的simpliest答案就是使用ORDER BY
和LIMIT
所有相關的數據,但它不對於具有相同點的重複用戶不適用。
SELECT a.*, b.*
FROM user a
INNER JOIN scores b
ON a.id = b.user_ID
ORDER BY b.point DESC
LIMIT 10
處理重複的點,你可以有一個包含了前N得分的子查詢。
SELECT a.*, b.*
FROM user a
INNER JOIN scores b
ON a.id = b.user_ID
INNER JOIN
(
SELECT point
FROM scores
GROUP BY point
ORDER BY point DESC
LIMIT 10
) c ON b.point = c.point
ORDER BY b.point DESC
使用此: -
SELECT *
FROM user as u,scores as s Where u.id = s.user_id
ORDER BY s.point DESC
LIMIT 10
爲什麼downvoted? –