我想计算同一个select语句中另一个表的记录数,我使用了Left join
在select语句中我输入 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)
但它只返回第一张唱片,我可以修复吗?或制作另一张桌子并将其仅用于计数?
答案 0 :(得分:5)
答案 1 :(得分:0)
如果您不使用分组依据,则计数(*)将仅返回一条记录。您要求它计算所有记录,因此只能有一个结果。
答案 2 :(得分:0)
count()SQL函数更改从数据库返回结果的方式 - 如果没有GROUP BY
,数据库将只返回一条记录,而不管SELECT
中的其他列。
如果你添加:
group by a.answer_id
到SQL查询的末尾,可能是DWYM。