>我正在使用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')