我有以下表结构:
user_id english physics geography chemistry
1 75 60 85 79
我想向用户展示他们获得最高分的前3名科目。因此,我们可以看到user1
在geography
:85
中最高,然后在chemistry
:79
,然后在english
:{{1} }
因此,我稍后会向用户显示他们的前三名得分主题是地理,化学和英语,并向他们展示分数。
请查看小提琴表:table link
答案 0 :(得分:2)
您是否需要使用此表格结构?如果您有2张桌子,这将更容易。
Users(user_id, name)
和Grades(subject_name, score, user_id)
然后您可以查询:
SELECT Users.name, subject_name, score FROM Grades
JOIN Users on Grades.user_id = Users.user_id
WHERE Users.user_id = ?
ORDER BY score DESC LIMIT 3
OR:
SELECT TOP 3 Users.name, subject_name, score FROM Grades
JOIN Users on Grades.user_id = Users.user_id
WHERE Users.user_id = ?
ORDER BY score DESC