我有一张与下面类似的表格。表格中的p1
和p2
是指向另一个表格中玩家的id。
id score p1 p2 date
-- ----- -- -- ----
1 12 1 2 2011.10.21
2 23 3 4 2011.10.22
3 21 1 3 2011.10.23
4 35 5 1 2011.10.24
5 11 2 3 2011.10.25
我希望能够获取得分最高的玩家id(p1或p2)。我的解决方案类似于
select sum(score)
,但是由于一个玩家可能会出现在p1或p2列中,因此我无法构建查询语句。另外,更大的问题是当我想将得分从高到低排序时,我不知道该怎么做。如果我需要对不同的列进行分组,那么如何汇总和排序得分?我希望得到类似于以下输出结果:
pID score times_played
--- ----- ------------
1 68 3
3 55 3
5 35 1
2 23 2
4 23 1
我的数据库设计有缺陷吗?如果有更加智能的方式,我想知道。我应该需要单独的查询,这样我才能在PHP上合并它们吗?
任何帮助将不胜感激。 谢谢。
PS:我无法想到一个好的主题。随意编辑。