bla*_*e24 2 mysql doctrine doctrine-orm
如果我有一个公司实体,与用户实体有一对多关联,我如何获得公司实体列表,按用户数量排序?
小智 5
这是我的解决方案,但它可能不是最好的方法:
SELECT
c, COUNT(u.id) as num_users
FROM
Acme\Model\Company c
LEFT JOIN c.users u
GROUP BY
c.id
ORDER BY
num_users DESC
Run Code Online (Sandbox Code Playgroud)
保湿结果后,您将获得如下数组:
array(
array(
0 => /* entity instance */,
'num_users' => 123
),
array(
0 => /* entity instance */,
'num_users' => 111
),
// ...
)
Run Code Online (Sandbox Code Playgroud)
所以你必须过滤结果:
return array_map(
function ($result) { return $result[0]; },
$results
);
Run Code Online (Sandbox Code Playgroud)
就是这样!
也许你可以避免过滤部分调整水化部分.
| 归档时间: |
|
| 查看次数: |
2884 次 |
| 最近记录: |