如何解决在当前用户和DQL查询中的其他用户之间添加共同选择的COUNT个事件
我在Symfony 4项目中有此DQL查询,它确实选择了与当前用户在所有相同事件中注册的所有用户
$query = $this->_em->createQuery(
"select u as user,er.dateRegistration from App:EventRegistration er
left join App:User u with er.user = u.id
where er.user != :user_id and
er.event in (select identity(er2.event) from App:EventRegistration er2
where er2.user = :user_id)")
->setParameter('user_id',$user->getId());
return $query->getResult();
现在,在同一查询中,我想选择 COUNT 个,每个其他用户在当前用户的同一事件中已经注册了多少次。
我的意思是当前用户与其他用户之间共同的事件的数量。
如果我将count(er.id)添加到选择中
select u as user,er.dateRegistration,count(er.id)
我收到此错误:
SQLSTATE [42803]:分组错误:7错误:冒号«u0_.username»do装置名称dan子句GROUP BY ou doitêtreutilisédans une fon d'agrégat 第1行:选择u0_.username AS用户名_0,u0_.username_canonical AS ..
解决方法
您需要添加分组依据;
$query = $this->_em->createQuery(
"select u as user,count(er.id) as register_count from App:EventRegistration er
left join App:User u with er.user = u.id
where er.user != :user_id and
er.event in (select identity(er2.event) from App:EventRegistration er2
where er2.user = :user_id) group by u.id")
->setParameter('user_id',$user->getId());
return $query->getResult();
它将为您提供每个用户的注册计数,但是在这种情况下,您将无法公开“ er.dateRegistration”,因为现在您正在对每个用户的计数进行分组。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。