0
我遇到了按計數字段對查詢結果進行排序的問題。我的簡化查詢:在左連接表中使用按次數排序
$customers = Doctrine_Core::getTable("Customer")->createQuery("c")
->leftJoin("c.Project p")
->orderBy("COUNT(p.id) ASC");
->execute();
我很確定這個問題不是與教義有關。從應用程序日誌中檢索到的ORM生成的查詢只選擇一行,它包含一個一行:
ORDER BY COUNT(r2.id) ASC
除去其中所有的行都被適當地選擇後。
ORDER BY
子句會導致查詢只從customers表中選擇一行。我認爲這與沒有任何項目分配給他們的客戶有關。我究竟做錯了什麼?
可以添加產生的ORM,其餘查詢問題?通過聚合值進行排序只能在分組查詢上完成 - 如果您想通過p.id(而不是p.id的計數)進行排序,那麼您應該將查詢更改爲'ORDER BY r2.id ASC '。 – 2012-03-12 14:04:50
不,我希望它由相關的行數進行排序。 – Przemek 2012-03-12 15:16:16
「否」表示您無法將其餘的ORM生成的查詢添加到問題中? – 2012-03-12 15:29:46