Bonjour,
Je suis avec symfony 2.3 et je voulais faire une requete un peu plus complexe avec doctrine.
Je m'explique, j'ai une entity User(id, nom, prenom) et une entity Profile(id, id_user, annee, att1, att2)
Entre les 2 entity j'ai une relation oneToMany avec 1 user peut avoir N Profile
Le profile étant le profile du user avec 1 seul par année.
Je voudrais faire une requete, du genre att1=1 mais uniquement sur les profiles les plus récent de chaque user.
En SQL j'aurai fait comme cela :
Donc avec une sous requete dans le join.
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT u.nom FROM profile p1 JOIN user u on u.id = p1.id_user JOIN ( SELECT MAX(p2.annee) defyear, p2.id_user FROM profile p2 GROUP BY p2.id_user ) t2 ON p1.id = t2.id_user AND p1.annee = t2.defyear WHERE p1.att1 = 1
Mais comment faire ça avec doctrine et le querybuilder ?
Merci de votre aide.
Partager