我有一个名为games
的表格,其中包含以下字段:match
和winner
。
Match
是matches
表的外键; winner
是“参与者”表格的外键,如果游戏尚未确定,则可以是NULL
。我需要一种方法来找出谁赢得每场比赛,当我选择一个比赛列表时,通过计算谁赢得每场比赛并返回获胜者最多的参赛者(来自获胜者领域)。
子查询的各种组合GROUP BY
,COUNT
和MAX
尚未给出正确的结果。
我认为我不能用ORDER BY
和LIMIT
代替MAX
,因为如果所有参与者碰巧拥有相同数量的胜利,那将只返回比赛中的第一个参与者
答案 0 :(得分:0)
您是否尝试过使用GROUP BY和COUNT的JOIN?
select b.name, count(c.match)
from game a
inner join part b on a.winner = b.winner
inner join matches c on a.match = c.match
group by b.winner;
约翰