left join queryBuilder symfony3



>我正在使用Doctrine的QueryBuilder来构建查询,我想获取表中每个值的计数以及值。

这是 SQL 查询

SELECT choice.choice ,count(*) 
FROM answer 
LEFT JOIN choice ON answer.answer_id_id = choice.id 
WHERE choice.survey_id=1  
GROUP BY choice ;

它返回一个包含两列的表,值(选择(和计数

这是查询生成器:

class AnswerRepository extends DoctrineORMEntityRepository
{
    public function getSurveyAnswers($idSurvey)
    {
        $query = $this->createQueryBuilder("a");
        $query
            ->select('COUNT(a.answerId),e.choice')
            ->leftJoin("a.answerId",'e')->addSelect('e.choice')
            ->where('e.Survey = :surv')
            ->setParameter('surv',$idSurvey);
        $kk = $query->getQuery()->getArrayResult();
        dump($kk);
        die();
    }
}

现在,当我运行它时,它返回一个数组,其中包含行数和第一个值。

查询生成器中没有groupby(),因此 SQL 数据库将所有行聚合为一个行返回。

尝试将分组添加到查询生成器:

->groupby('e.choice')

相关内容

  • 没有找到相关文章