Mysql 带分数观看

Mysql 带分数观看,mysql,Mysql,我和桌子有这种关系 我想创建一个视图,在这个视图中,每个用户都可以获得10分,例如,比赛第一名,9分,第二名等。在比赛表格中,我有id,id,以及用户在比赛中的时间。在表格race中,我已经填写了race_end_日期,所以我可以选择日期小于当前日期的所有比赛 此sql语句 SELECT player.login, race.race_name, played_race.race_time FROM player INNER JOIN `played_race` ON player.id_p

我和桌子有这种关系

我想创建一个视图,在这个视图中,每个用户都可以获得10分,例如,比赛第一名,9分,第二名等。在比赛表格中,我有id,id,以及用户在比赛中的时间。在表格race中,我已经填写了race_end_日期,所以我可以选择日期小于当前日期的所有比赛

此sql语句

SELECT player.login, race.race_name, played_race.race_time
FROM player
INNER JOIN  `played_race` ON player.id_player = played_race.id_player
INNER JOIN  `race` ON played_race.id_race = race.id_race
WHERE race.race_end_date < CURDATE( ) 
ORDER BY race.id_race, played_race.race_time 
选择player.login、race.race\u name、played\u race.race\u time
来自玩家
在player.id\u player=played\u race.id\u player上进行内部连接'played\u race'
在已播放的\u race.id\u race=race.id\u race上进行内部连接'race'
其中race.race\u end\u date

给我列出所有完成的比赛,但如何使用它来创建分数表。我想我必须使用计数和分组方式,但我不知道如何正确地进行。我是否有非常大的sql语句,其中我对结果进行分组和求和,例如第一次求和所有第一位和按id_用户分组,其他九位也是如此。欢迎任何帮助;)

试试这个。可以先运行此查询以设置变量的值:
SET@Score:=10

然后使用以下修改运行查询:

SELECT player.login, race.race_name, played_race.race_time, (@Score := @Score - 1) as Score
FROM player
INNER JOIN  `played_race` ON player.id_player = played_race.id_player
INNER JOIN  `race` ON played_race.id_race = race.id_race
WHERE race.race_end_date < CURDATE( ) 
ORDER BY race.id_race, played_race.race_time 
选择player.login、race.race\u name、played\u race.race\u time、(@Score:=@Score-1)作为分数
来自玩家
在player.id\u player=played\u race.id\u player上进行内部连接'played\u race'
在已播放的\u race.id\u race=race.id\u race上进行内部连接'race'
其中race.race\u end\u date