是否可以在Doctrine中组合fetch join和COUNT?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以在Doctrine中组合fetch join和COUNT?相关的知识,希望对你有一定的参考价值。

我想获取连接一些实体,以避免很多额外的查询,我也想得到相关集合的数量。

像这样的东西:

SELECT u, a, count(p) properties_count
FROM User u
JOIN u.address a
LEFT JOIN u.properties p 
group by u.id

那就是我想得到像[[0 => User, 'properties_count' => 42], [0 => ...], ...]这样的集合。

它没有获取连接(SELECT u, count(p) properties_count),但使用SELECT u, a, count(p) properties_count它似乎不包括结果中的计数。

难道我做错了什么?

答案

看起来它只是原始查询中的一个错误。

它使用这样的连接:

LEFT JOIN Address a WITH a.id = u.address

当我把它换成了

LEFT JOIN u.address a

它开始工作了。 (我认为他们是等价的)

以上是关于是否可以在Doctrine中组合fetch join和COUNT?的主要内容,如果未能解决你的问题,请参考以下文章

在 Doctrine 2 中执行 WHERE .. IN 子查询

如何检索包含所有关系记录的 Doctrine 记录?

Symfony 4:调用 getter 后,Doctrine2 LAZY Fetch Collection 仍然为空

Joi 验证器条件模式

是否可以从一组定义的字段中要求至少一个字段?

koa中使用joi进行参数校验