首页 > 解决方案 > 教义组数据

问题描述

我想使用最具性能的方式对学说数据进行分组。在以下查询中,我需要创建一个对象(或数组),该对象(或数组)返回以下 SiteBundle:DJ 及其子 SiteBundle:HJ,后跟正确的 WHERE 过滤器。我不确定是否需要使用子查询或 group by 子句,但我正在使用以下查询:

$sql = ' SELECT dj FROM SiteBundle:DJ dj '
        . ' LEFT JOIN SiteBundle:HJ hj WITH dj.id = hj.date '
        . ' LEFT JOIN SiteBundle:Job job WITH job.id = dj.job '
        . ' LEFT JOIN SiteBundle:Dia d WITH d.id = dj.dia '
        . ' WHERE job.active = 1 and job.id = :job '
        . ' AND (hj.hour BETWEEN :ini and :fim) AND (d.data >= :now)'
        . ' GROUP BY dj.id, hj.id, d.data ORDER BY d.data ASC';

回报:

array:2 [▼
   0 => DJ {#1584 ▶}
   1 => DJ {#1580 ▶}
]

$dj->getHJ() 返回与该 DJ 相关的所有 SiteBundle:HJ,但我只需要在 where 子句中过滤的那些。

如何将它们分组?

标签: sqlsymfonygroup-bydoctrinedql

解决方案


你有一个 ”;” 在 where 子句的末尾,将其删除并重试。


推荐阅读