Sorting 关联Cakephp 3上的简单计数和排序

Sorting 关联Cakephp 3上的简单计数和排序,sorting,cakephp,associations,cakephp-3.0,query-builder,Sorting,Cakephp,Associations,Cakephp 3.0,Query Builder,我有学生表和成绩表。这个学生有很多成绩。结果仅与一名学生关联。所以请注意,我试图实现的是这样的目标: $this->Students ->find('all') ->contain('Results') ->order('by count of results each student has' => 'asc'); 任何帮助都将不胜感激。试试这个 $query = $this->Students->find() $qu

我有学生表和成绩表。这个学生有很多成绩。结果仅与一名学生关联。所以请注意,我试图实现的是这样的目标:

$this->Students
    ->find('all')
    ->contain('Results')
    ->order('by count of results each student has' => 'asc');
任何帮助都将不胜感激。

试试这个

$query = $this->Students->find()
    $query->select(['total_result'=> $query->func()->count('Results.id')])
    ->autoFields(true)
    ->contain('Results')
    ->leftJoinWith('Results')
    ->group(['Students.id'])
    ->order(['total_result'=>'ASC']);

debug($query->all());
更多检查

试试这个

$query = $this->Students->find()
    $query->select(['total_result'=> $query->func()->count('Results.id')])
    ->autoFields(true)
    ->contain('Results')
    ->leftJoinWith('Results')
    ->group(['Students.id'])
    ->order(['total_result'=>'ASC']);

debug($query->all());

更多检查

您在模型中定义的是一个关系还是多个关系。你能给学生提供你在模型中定义的模型吗?它是一个关系还是多个关系。你能不能给学生们提供一份工作般的魅力。多谢注意,这只适用于允许在
SELECT
子句中包含未出现在
GROUP BY
子句中的非聚合字段的DMB。对于其他DBMS,或支持它但配置为不允许它的DBMS(ex),必须使用其他解决方案,例如
JOIN
子句中的子查询。也许你可以加上一张便条和一个例子?很有魅力。多谢注意,这只适用于允许在
SELECT
子句中包含未出现在
GROUP BY
子句中的非聚合字段的DMB。对于其他DBMS,或支持它但配置为不允许它的DBMS(ex),必须使用其他解决方案,例如
JOIN
子句中的子查询。也许你可以加上一个注释和一个例子?