Конструктор запросов Symfony - выберите максимальную дату и используйте ее в предложении where

0

Как создать конструктор запросов с помощью SELECT max_date и использовать этот max_date в where where в symfony?

$em->getRepository('AppBundle:User')->createQueryBuilder('u')
->select('u, MAX(s.date) as HIDDEN max_date')
->leftJoin('AppBundle:Score', 's', 'WITH', 's.userId = u.id')
->andWhere('s.date = :max_date')
->setParameter('max_date', 'max_date')
->getQuery()
->getResult();

Это всего лишь пример кода. Будет хорошо, если я смогу получить объект пользователей "u", не получив max_date в результатах. Является ли это возможным? Я попытался найти ответ в других сообщениях, но я потерпел неудачу.

Теги:
orm

1 ответ

0

Вы еще не можете использовать MAX (s.date). Ваш выбор:

  1. Вы хотите получить только одного пользователя? то вы можете order by s.date desc и limit 1

  2. запустить два запроса, сначала выбрать max_date, второй необходимый пользователь

  3. left join с временной таблицей, сгенерированной из Score, где только одна строка с max_date

Ещё вопросы

Сообщество Overcoder
Наверх
Меню