我正在使用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,则选择最后添加的记录