Php (a,b)和(b,a)分组
我有一张这样的桌子:Php (a,b)和(b,a)分组,php,mysql,sql,group-by,Php,Mysql,Sql,Group By,我有一张这样的桌子: player1 player2 player3 player4 score1 score2 1 2 3 4 11 2 1 2 3 4 4 11 2 1 3 4 11
player1 player2 player3 player4 score1 score2
1 2 3 4 11 2
1 2 3 4 4 11
2 1 3 4 11 5
如果我查询:按player1、player2从mytable组中选择player1、player2、SUM(score1)
我会得到:
player1 player2 SUM(score1)
1 2 15
2 1 11
但是,我想同时按player1、player2和player2、player1进行分组,以获得:
player player SUM(score1)
1 2 26
有人知道这是否可能(我使用MySQL)
如果不是,你知道用PHP做这件事的好方法吗?你可以使用least()
和grest()
:
或者试试这个
select min(player1) as player1,max(player2) as player2, sum(score1) as score1 from
(
select player1, player2, SUM(score1) as score1 FROM mytable GROUP BY player1, player2
) as t
使你的生活正常化schema@Strawberry也许我的桌子不好,是的。你认为我应该把我的球员放在另一张桌子上,然后做一些类似的事情:第一组,第二组,第一组,第二组?太好了,我不知道为什么我没有想到这一点@你可以出于任何理由投反对票,只要你不是特别针对任何用户(而且你不是)。我很好奇为什么你觉得有必要在发表评论之前先发表评论though@Strawberry我明白了,听起来不错。不管怎样,我认为你应该对待每一个投反对票的人same@Strawberry关于次优设计的问题的每个答案都必须包含警告,即答案是设计问题的解决方法吗?重复一段又一段会让人觉得乏味,而且经常当提到这一点时,你会发现OP的设计仍然是固定不变的。@HartCO不幸的是,我认为是这样,是的。这一范式形成了关于各种学科的最佳知识宝典。这里的主题是关系数据的管理。因此,提出解决方案,至少不要考虑设计有缺陷的可能性,欺骗那些来这里学习关系数据库的人。
select min(player1) as player1,max(player2) as player2, sum(score1) as score1 from
(
select player1, player2, SUM(score1) as score1 FROM mytable GROUP BY player1, player2
) as t