当两支球队相互比赛时,我正在尝试计算头对头的统计数据。 Team1可以在整个赛季中多次对阵Team2。每次有头对头比赛(比赛)我都会在头对头的桌子上记录结果。下面是我的表架构,其中包含数据:
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'match up id',
`team1_id` int(11) DEFAULT NULL COMMENT 'id of team1',
`team2_id` int(11) DEFAULT NULL COMMENT 'id of team2',
`winner` int(11) DEFAULT NULL COMMENT 'winner(team ID) of this head to head',
`dateplayed` date DEFAULT NULL COMMENT 'date played',
`tournament_id` int(11) DEFAULT NULL COMMENT 'tournament name',
我的目标是能够计算team1(team1_id)对team2(team2_id)的胜利数。 我现在使用的查询是:
SELECT count(winner)as wins, te.id FROM head_to_head hh
LEFT JOIN teams te ON
hh.winner = te.id
WHERE hh.team1_id ='225' AND
hh.team2_id ='4'
group by te.id
order by count(winner)
如果我使用上面的查询,我只会得到"胜利"对于hh.team2_id(' 4')。如果他们在赛季中每次出场5次,我希望能够计算出team1赢得的胜利' x'次数和团队2赢得了' x'次数。所以最终结果应如下所示: - 假设他们在赛季中互相打过5次。
[team_id] [Wins]
225 3
4 2
非常感谢任何帮助。 谢谢。
答案 0 :(得分:1)
select
t.id team_id,
count(h.winner) wins
from teams t
left outer join
head_to_head h
on t.id = h.winner
and h.team1_id ='225'
and h.team2_id ='4'
group by t.id;