查看得分

时间:2014-02-24 21:43:36

标签: mysql

我与表格有这样的关系

enter image description here

我想创建一个视图,其中每个用户获得例如10比特的第一名,第二名等等。在表play_race我有id_player,id_race和时间用户在这场比赛中。在桌上比赛中,我已经提交了race_end_date,因此我可以选择所有比赛日期小于当前日期。

这个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 

让我列出所有已完成的比赛,但是如何使用它来创建得分表。我想我必须使用count和group by但我不知道如何正确地做到这一点。我是否已经制作了非常大的sql语句,我将其分组并对结果进行求和,例如在第一个总和中所有第一个地方和分组由id_user和其他九个地方相同。欢迎任何帮助;)。

1 个答案:

答案 0 :(得分:0)

试试这个。您可以先运行此查询以设置变量的值: 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