鉴于现有数据以及任务和日期的分组,我预计以下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子句或如何以有用方式获取结果的明显信息?