Mysql:计数赢了但每个对手只有一次

时间:2018-02-16 15:25:28

标签: mysql

我在SQL查询中使用sum()寻求帮助:

任务:计算所有玩家的锦标赛胜利。 (每位玩家一个号码)(battles.result = 1表示Player1获胜)

SELECT members.id, members.name,
            (
                SELECT SUM(battles.result = 1)
                FROM battles
                WHERE members.id = battles.player1 AND battles.result=1 order by battles.gametime
            (   as wins,
FROM members

下一步:每两位玩家只计算一次结果。

因此,如果两个玩家有多个结果,则只计算第一个结果(第一个游戏时间)。

我已经尝试过使用battles.player2的订单,但我想有更好的解决方案?

1 个答案:

答案 0 :(得分:1)

您可以通过joinaggregation轻松获得结果。尝试:

SELECT A.id, A.name, SUM(IFNULL(B.result,0)) wons
FROM members A LEFT JOIN battles B
ON A.id=B.player1
GROUP BY  A.id, A.name;