Je dois effectuer cette requête:au sein de sous-requête Symfony2 gestionnaire d'entités Doctrine
SELECT * FROM (SELECT * FROM product WHERE car = 'large' ORDER BY onSale DESC) AS product_ordered GROUP BY type
En Symfony2 utilisant le gestionnaire d'entités.
Mon constructeur de requête de base serait:
$query = $em->getRepository('AutomotiveBundle:Car')
->createQueryBuilder('p')
->where('pr.car = ?1')
->andWhere('pr.status = 1')
->orderBy('pr.onSale', 'DESC')
->setParameter(1, $product->getName())
->groupBy('p.type')
->getQuery();
Mais je ne peux pas travailler sur la façon d'ajouter dans une sous-requête à ce sujet.
Ive essayé de faire une requête distincte et se joindre comme:
->andWhere($query->expr()->in('pr.car = ?1',$query2->getQuery()));
Mais je reçois:
Call to undefined method Doctrine\ORM\Query::expr()
Je crois que cette solution ne tient pas compte limite @cerad sous-requête. E.g $ qbGameId-> setMaxResults (20) et quand vous imprimez $ qbGames-> getDQL() vous ne verrez pas la limite sur la sous-requête. – EnchanterIO
Une solution possible: http://stackoverflow.com/questions/15877287/symfony2-doctrine-expr-subquery-error?answertab=active#tab-top – EnchanterIO