[英]Doctrine2 Join count on same table returning empty array
$messageQuery
->select('m, COUNT(pm) AS newResponses')
//->addSelect($messageQuery->expr()->countDistinct('pm.id'))
->from('entities:PrivateMessage', 'm')
->where('m.employeeId = :employeeId AND m.responseTo = 0')
->innerJoin('entity:PrivateMessage', 'pm', 'WITH', 'pm.responseTo = m.id AND pm.employeeRead = 0')
->setParameter('employeeId', $employeeId)
->setFirstResult($offset)
->setMaxResults($max)
->addGroupBy('m.id')
->orderBy('m.id', 'DESC');
假设有两条消息,employeeId = 1,responseTo =0。其中一条消息也有两个响应(因此,另两个记录的responseTo = messageId)。 另一个没有。 我从该查询中期望的结果是两个数组,其中实体对象为索引0,计数为索引numResponses(第一行的值为2,第二行的值为0)。 我回来的是$ messageQuery-> getQuery()-> getResult();上的一个空数组;
有谁知道为什么会发生这种情况吗? 有什么明显的我想念的地方吗?
实际上,我似乎已经通过切换到leftJoin修复了它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.