使用where子句

时间:2019-03-27 12:15:53

标签: symfony doctrine

我需要用几个数据列出表中的数据。我需要获取已玩游戏的数量(“ COUNT(p.partie)as sumparties”)和获胜游戏的数量。

这是我的存储库:

    $qb->select('j AS jou')
        ->innerJoin('j.playeds', 'p')
        ->addSelect('SUM(p.points) AS sumpoints')
        ->addSelect('SUM(p.max) AS summax')
        ->addSelect('COUNT(p.partie) as sumparties')
        ->addSelect('COUNT(p.partie) as sumwins WHERE p.points = 1')
        ->groupBy('j.id')
        ->orderBy('sumpoints', 'DESC');

因此,对于第一个它,它是有效的:

->addSelect('COUNT(p.partie) as sumparties')

我得到了总的比赛次数。但是我无法赢得一定数量的比赛。我尝试了一下,但显然不起作用:

->addSelect('COUNT(p.partie) as sumwins WHERE p.points = 1')

感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

代替合并selectwhere

->addSelect('COUNT(p.partie) as sumwins WHERE p.points = 1')

拆分where子句:

->addSelect('COUNT(p.partie) as sumwins')
->andWhere('p.points = 1')

编辑:

正如我在评论中提到的那样,对于您的用例,您需要执行以下操作:

->addSelect('SUM(CASE WHEN p.points = 1 THEN 1 ELSE 0 END) AS sumwins')