Je veux faire une requête quelque peu complexe dans la doctrine, à savoir une jointure interne avec une sous-requête avec un group_concat.Comment faire une sous-requête en doctrine et obtenir le résultat hydraté à un objet?
Voir la requête en SQL:
SELECT *
FROM kinderen k
INNER JOIN
(
SELECT i.kindid, GROUP_CONCAT(DISTINCT a.periode) as periodes
FROM inschrijvingen i
INNER JOIN activiteiten a ON i.activiteitid=a.id
GROUP BY i.kindid
) p
ON k.kindid=p.kindid;
1) Comment puis-je faire dans la doctrine? En d'autres termes, comment puis-je traduire ce sql régulier en dql?
2) Je voudrais que la propriété supplémentaire (periodes) soit accessible dans l'objet Kinderen résultant. Je soupçonne que c'est un comportement par défaut pour la doctrine?
Je ne trouve pas la solution lorsque je lis les docs et google.
Merci!
http://stackoverflow.com/questions/3324101/doctrine-regular-vs-fetch-join régulier vs chercher semble seulement être une question de performance. Ma question principale est comment traduire le sql normal en dql, je mettrai à jour ma question. Merci. – chrizzler
Je vois ... J'ai été ébloui par le peu d'hydratation. Est-ce que ça doit être DQL? Voir ma réponse ici: http://stackoverflow.com/questions/2774947/using-raw-sql-with-doctrine/2777020 ... pas sûr de ce que les méthodes d'exécution offrent pour hydrater tout. Lorsque j'ai besoin de contourner occasionnellement DQL, je toujours aller pour les données de tableau. – Tom
Merci pour le lien. Mais ... j'ai plusieurs fonctions de traitement du résultat et celles-ci attendent un objet. Bien sûr, je peux les réécrire, mais ce serait bien de le garder orienté objet. J'utilise Zend + Doctrine. – chrizzler