Le 24/08/2011 15:37, Cyril Flieller a écrit :
J'ai un petit souci avec une requête SQL que je dois traduire den DQL.
J'ai lu sur un forum qu'il était impossible dans un FROM d'avoir une
requête imbriquée car Doctrine n'acceptait que les tables du Modèle, ce
qui me semble assez logique, mais j'imagine que l'on peut contourner
cela. Voilà ma requête :

SELECT *
FROM operation o
LEFT JOIN (
SELECT *
FROM operation_history
ORDER BY ohdate DESC
) AS oh ON i.id <http://a.id/> = oh.operation_id
LEFT JOIN user u ON u.id <http://p.id/> = o.user_id
LEFT JOIN member_group mg ON u.id <http://p.id/> = mg.user_id
WHERE mg.group_id = 2
GROUP BY o.id <http://a.id/>
HAVING oh.status_id = 1


Bonjour,


sans trop regarder si tu peux passer par une autre solution, la solution pour avoir le SELECT dans ton FROM pourrait être trouvée en passant par une vue normalement.

Tu crées une vue SQL avec ta requete "SELECT * FROM operation_history ORDER BY ohdate DESC" et tu crées un modèle pour ta vue.

Une fois que tu as ton modèle, tu peux l'utiliser dans ta requête d'origine :
SELECT *
FROM operation o
LEFT JOIN ma_vue AS oh ON i.id = oh.operation_id
LEFT JOIN user u ON u.id = o.user_id
LEFT JOIN member_group mg ON u.id = mg.user_id
WHERE mg.group_id = 2
GROUP BY o.id
HAVING oh.status_id = 1



Cordialement,
Simon Leblanc

--
Vous recevez ce message, car vous êtes abonné au groupe Google 
Groupes Symfony-fr.
Pour envoyer un message à ce groupe, adressez un e-mail 
à symfony-fr@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse 
symfony-fr+unsubscr...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : 
http://groups.google.com/group/symfony-fr?hl=fr

Répondre à