Построитель запросов Doctrine, выбирает последнюю запись группы, но всегда возвращает первую - PullRequest
0 голосов
/ 06 октября 2018

Я использую 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

Таким образом, строки с идентификаторами 1, 3 и 4 должны быть выбраны из таблицы.Строка с идентификатором 2 должна игнорироваться, поскольку она имеет одинаковую начальную дату строки 4. Но мой запрос возвращает ligne 2, а не 4.

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

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

Так что, если многие записи имеют одинаковую дату начала, выберите последнюю добавленную

...