Mysql 带分数观看
我和桌子有这种关系 我想创建一个视图,在这个视图中,每个用户都可以获得10分,例如,比赛第一名,9分,第二名等。在比赛表格中,我有id,id,以及用户在比赛中的时间。在表格race中,我已经填写了race_end_日期,所以我可以选择日期小于当前日期的所有比赛 此sql语句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
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