我需要选择所有比赛,然后按指定比赛中的球队进行分组。
问题是在比赛中我有2支外键
1)host_id
2)guest_id

要选择两个球队,我都选择比赛并加入:

JOIN
  teams host ON matches.host_id = host.id
JOIN
  teams guest ON matches.guest_id = guest.id


但是我有一个问题,如何将它们分组以求和以得出不同球队比赛的所有统计数据。主机和访客均未相乘。
因为如果我将它们按host.name和guest.name进行分组,我将分别获得像主机一样的Team1的SUM和像来宾一样的Team1的SUM。

顺便说一句。欢迎stackoverflow;)

最佳答案

创建一个子选择以获取所需的聚合,然后重新加入主语句。

(rest of your joins)
join
(select host.id, sum(score) totalscore,avg(gametime) average_gametime,sum(whateverelse)
from host
group by host.ID) a
on host.id = a.id


现在,您可以在选择子句中调用a.totalscore,a.average_gametime或任何其他内容

关于mysql - 同一表和组的多个外键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24873489/

10-16 15:22
查看更多