Doctrine2不遵循基于混合对象/聚集选择的分组方式

时间:2019-06-10 17:37:01

标签: symfony doctrine-orm

鉴于现有数据以及任务和日期的分组,我预计以下DQL会产生1,448个结果:

<?php
$query = $this->getEntityManager()
    ->createQuery(
        <<<DQL
SELECT t, SUM(a.hours) hours, a.date
JOIN AppBundle\Entity\Task t
JOIN AppBundle\Entity\Actual a WITH a.Task=t
GROUP BY t, a.date
ORDER BY t.taskCode, a.date
DQL
    );

$sql = $query->getSQL();
$results = $query->getResult();

生成的SQL确实返回预期的结果集。但是,$ results每个任务实体(21)仅包含一个记录。其中每个日期仅显示最后日期和相应的小时数。

如果我将SELECT从“ t”更改为“ t.TaskId”,它将返回所有1,448条记录,但是事实之后,我面临着重建所有Task实体的不愉快任务。

我是否缺少有关GROUP BY子句或如何以有用方式获取结果的明显信息?

0 个答案:

没有答案