主义查询生成器,选择group by的最后一条记录,但始终返回第一个

时间:2018-10-05 21:55:12

标签: doctrine query-builder symfony4

我正在使用symfony4和doctrine2。在表中,我有一些数据具有相同的startDate。

我想选择此表中的所有数据,但按startDate和最后一个分组。 例如,如果我有3条记录的开始日期为2018-02-01,那么我想选择添加的最后一条记录。

这是存储库中的查询生成器,但是问题是,尽管我添加了-> orderBy('e.id','DESC'),但选择的是第一个记录而不是最后一个记录。

让我们说这行:

id = 1 , startDay = 2017-04-20

id = 2, startDay = 2018-01-02

id = 3, startDay = 2018-03-18

id = 4 , startDay = 2018-01-02

因此,应从表中选择ID为1、3和4的行。 ID为2的行必须被忽略,因为它具有与行4相同的startDate。 但是我的查询返回的是ligne 2而不是4。

        $qb = $this->createQueryBuilder('e')
        ->groupBy('e.startDate')
        ->orderBy('e.id', 'DESC')
    ;

    return $qb->getQuery()->getResult();

因此,如果许多记录具有相同的startDate,则选择最后添加的记录

0 个答案:

没有答案