Je ne suis pas familier avec FLOW3 et je suis tout nouveau dans Doctrine.FLOW3 Doctrine2 :: SELECT b, comptez (b) FROM (SÉLECTIONNEZ a, b FROM x y z GROUP BY a) GROUP BY b
Je ne fais que quelques tests, et je veux apprendre ou comprendre certaines techniques que j'utiliserai plus tard. Maintenant, je suis coincé avec cette partie de la doctrine où je veux générer des statistiques.
$results = $this->entityManager
->createQuery('SELECT version,count(version)
FROM (SELECT device, version
FROM \MyStuff\Stats\Domain\Model\Stat
WHERE
date > \'2011-10-01 00:00:00\' and
date < \'2011-10-02 00:00:00\'
GROUP BY device) GROUP BY version')
->getResult();
J'ai demandé à d'autres endroits aussi, où ils me dirigés vers le Doctrine Docs. Eh bien, maintenant il y a plusieurs exemples mais ces 2 lignes sont triviales et je n'ai trouvé aucun exemple lié à ce genre de sous-sélection.
J'espère que quelqu'un ici pourra m'aider.
Edit:
Je voudrais résoudre ce en utilisant dql.
J'ai essayé de résoudre ce en utilisant un QueryBuilder, mais on m'a dit que QueryBuilder = dql
Edit 2:
Maintenant, on m'a dit que Doctrine2 ne supporte pas les sous-requêtes dans « FROM (SUBSELECT) » mais il fait "... WHERE IN (SUBSELECT)" et que l'on pourrait réécrire ma requête au format IN(). Eh bien, essayant de comprendre ça maintenant.
Édition 3: Je ne parviens pas à réécrire la sous-requête à partir d'une sous-requête. Donc ... dql ne fait pas de sous-requêtes et il n'y a pas d'autre moyen de faire ce que je veux avec dql?! Alors dql manquerait d'une fonctionnalité très importante je dirais. Ou suis-je juste ne pas voir sth. ici ?
Edit 4: J'ai finalement obtenu le en sous-requêtes, mais il était environ 10 fois plus lente (4 secondes au lieu de 0,4) et maintenant on m'a dit que certains types de doctrine de #doctrine, que je devrais utiliser le nativeQuery fonction à la place.
Edit 5: Il fonctionne à l'aide du nativeQuery maintenant, voir ma réponse à cette question ...