mysql - Doctrine Query Builder 计数 ManyToMany
问题描述
我有一个实体报价。报价与文件具有多对多关系。现在我想拥有所有具有文件的报价-> Count(offer.files) > 0。
我像这样尝试过,但不起作用:
$this->repository->createQueryBuilder('offer')
->addSelect('COUNT(offer.files) as files')
->having('files > 1')
->getQuery()
->getResult();
解决方案
其实你不需要加入。Doctrine 为此内置了SIZE
DQL 功能。
SIZE(collection) - 返回指定集合中的元素个数
所以你可以像这样使用它:
$this->repository->createQueryBuilder('offer')
->addSelect('SIZE(offer.files) as files')
->having('files > 1')
->getQuery()
->getResult();
推荐阅读
- c - 访问嵌套结构
- spring - 如何将更动态的结构传递给jsp Spring Forms?
- sass - 实际上 mixins 会返回什么?
- github - 当 Heroku 审查应用程序构建失败时防止合并
- c++ - 当并行线程访问同一数据结构的不同成员时,在 Visual Studio 上并行化 OpenMP 循环的正确方法?
- python - 使用 python 脚本从 Json 文件中解析数据
- scala - 从数据集中的地图按键排序
- c - 通过读取输出了解 C 中的 malloc()、realloc() 和 free()
- sql-server - 更新和插入触发失败后
- microsoft-graph-api - Microsoft 团队图形 API(已加入团队)正在返回空团队结果