Я хотел бы знать, как я могу установить ограничение на 1 запрос, а затем запрос на основе выбранных результатов.Подзапрос с ограничением в Doctrine/Symfony с использованием DQL
Например, я хочу выбрать последние 100 сообщений и выполнить некоторую операцию.
$first_query= $this->getEntityManager()
->createQuery(
'SELECT p FROM TestBundle:Post p ORDER BY p.date DESC'
)
->setMaxResults(5);
Как использовать этот результат для его выбора в следующем запросе?
return $this->getEntityManager()
->createQuery(
"SELECT u.username , max(p.date),d.points,l.name
FROM $first_query
JOIN p.location l JOIN p.user u JOIN u.deeds d
WHERE l.name = :location
GROUP BY u.id
ORDER BY d.points DESC , p.date DESC
"
)
->setParameter('location' , $location)
->getResult();
http://doctrine.readthedocs.org/ru/latest/en/manual/dql-doctrine-query-language.html#comparisons-using-subqueries –