【问题标题】:Doctrine2 Join count on same table returning empty array同一张表上的 Doctrine2 连接计数返回空数组
【发布时间】:2013-05-16 14:19:47
【问题描述】:
$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();

有没有人知道为什么会发生这种情况?我这里有什么明显的遗漏吗?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-09
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      • 2015-09-10
      • 2019-07-26
      • 1970-01-01
      相关资源
      最近更新 更多