我搜索了论坛,找到解决问题的方法.我的问题是我无法找到如何保存每场锦标赛的排名位置.我创建了两个表和一个如下所示的查询:竞争对手(cid int auto_increment主键,名称varchar(25),lastname varchar(25)); comps(compid int auto_increment primary key,tournement int,cid int,points int);
select @rowno:= @rowno+1 as position, rank.*
from (
select name,lastname,SUM(points) as pts,group_concat(points) as round FROM
(select cid,tournament,points from comps
group by cid,tournament order by points)total
join competitors c on c.cid = total.cid
cross join (select @rowno := 0) r
group by total.cid
order by pts desc) rank
order by pts desc
Run Code Online (Sandbox Code Playgroud)
这是 SQLFiddle演示
我想要实现的是,当用户点击竞争对手的个人资料时,每个锦标赛的位置都会显示如下:
Name: Competitor One
Tournament 1: 1st 100 pts
Tournament 2: 2nd 80 pts
Tournament …Run Code Online (Sandbox Code Playgroud)