sous requete dans une jointure
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 :
Code:
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 |
Donc avec une sous requete dans le join.
Mais comment faire ça avec doctrine et le querybuilder ?
Merci de votre aide.