Doctrine2连接计数返回空数组的同一个表

时间:2013-05-21 17:52:00

标签: symfony join doctrine-orm inner-join query-builder

$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();

上的空数组

有没有人知道为什么会这样?有什么明显的东西我在这里不见了吗?

1 个答案:

答案 0 :(得分:1)

实际上,我似乎已经通过切换到leftJoin来修复它。