gpt4 book ai didi

mysql - 在 Doctrine QueryBuilder 中,尝试根据相关实体记录的数量选择记录

转载 作者:行者123 更新时间:2023-11-28 23:17:43 24 4
gpt4 key购买 nike

到目前为止,在这个问题上花了一整天......

我有实体房间和用户。许多用户到一个房间。这种关系运作良好。

我正在尝试选择相关用户少于四个的所有房间。似乎使用 DQL 或 QueryBuilder 应该非常简单,但它一直给我带来麻烦。无法找到任何完全适合搜索的内容。最常见的意外结果是 a) 不返回任何结果 b) 返回可能有也可能没有 <4 位用户的单个结果。

下面是我所期望的代码。任何帮助将不胜感激,谢谢!

$rooms_with_space = $em->createQueryBuilder()
->select('c')
->from('MyBundle:Room', 'c')
->leftJoin('c.users', 'u')
->having('COUNT(u.id) > 4')
->getQuery()
->getResult();

最佳答案

据我所知,当有 GROUP BY 时,HAVING 上的 COUNT 函数起作用。

我认为您需要添加一个房间 ID 的 GROUP BY:

$rooms_with_space = $em->createQueryBuilder()
->select('c')
->from('MyBundle:Room', 'c')
->leftJoin('c.users', 'u')
->groupBy('c.id')
->having('COUNT(u.id) > 4')
->getQuery()
->getResult();

希望对您有所帮助!

关于mysql - 在 Doctrine QueryBuilder 中,尝试根据相关实体记录的数量选择记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43129883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com