mysql - mysql 中的 count(*) 只返回一条记录

标签 mysql doctrine

我想在同一个选择语句中计算来自另一个表的记录数,我使用了 Left join 在选择语句中,我输入了 count(ag.*) 看到 示例:

$q = Doctrine_Query::create()
            ->select("a.answer_id,a.date_added , count(ag.content_id) AS agree_count")
            ->from('Answer a')
             ->leftJoin("a.Agree ag ON a.answer_id = ag.content_id AND ag.content_type = 'answer' ")
            ->where('a.question_id= ? ', $questionId)

但它只返回第一条记录,我可以解决这个问题吗?还是制作另一张 table ,让它只用于计数?

最佳答案

您的查询中缺少 GROUP BY

更多信息 here.

当你没有 GROUP BY 子句时,只得到一行是正常的。

关于mysql - mysql 中的 count(*) 只返回一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10013593/

相关文章:

mysql - 在单个查询中从多个表中获取数据

MySQL 不使用索引进行 BETWEEN 查询。我究竟做错了什么?

mysql - Symfony 2 - Doctrine ORM 更新查询不起作用

mysql - 我怎样才能在mysql查询中的行之间

orm - Doctrine 问题 : Couldn't get last insert identifier

mysql - mysql查询时如何获取时间?

PhpMyAdmin:502 错误网关

Doctrine 2 : How do i check if any result/object/row returned?

php - symfony2 中未识别的新列未捕获的异常 'Doctrine\ORM\Query\QueryException

php - 如果客户端断开连接,则停止执行 PHP 脚本