在mysql中获得3分最高分

时间:2015-05-26 17:37:40

标签: mysql

我有以下表结构:

user_id  english   physics    geography   chemistry

  1        75        60          85          79

我想向用户展示他们获得最高分的前3名科目。因此,我们可以看到user1geography85中最高,然后在chemistry79,然后在english:{{1} }

因此,我稍后会向用户显示他们的前三名得分主题是地理,化学和英语,并向他们展示分数。

请查看小提琴表:table link

1 个答案:

答案 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