Bonjour

J'ai un problème de jointure avec Doctrine (1.2.4), voici le YAML de ma base de données.

Je souhaite écrire cette requête SQL en DQL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
SELECT content.*, site.*, COUNT(spin.id)
FROM spin_content_src content
LEFT JOIN spin_sites site ON content.site_id = site.id
LEFT JOIN spin_content_spinned spin ON spin.content_id = content.id
GROUP BY content.id
Voici la requête DQL correspondante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
$contents = Doctrine_Query::create()
	->select('c.*, s.*, COUNT(sp.id)')
	->from('Content c')
	->leftJoin('c.Site s')
	->leftJoin('Spin sp ON sp.content_id = c.id')
	->groupBy('c.id')
	->orderby('c.date_add DESC');
Seulement, Doctrine ne me retourne pas les mêmes résultats que la requête SQL (toutes les lignes ont la même valeur pour le champ COUNT), voici ce qu'affiche un getSQLQuery() (la requête SQL générée par Doctrine) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
SELECT s.id AS s__id, s.site_id AS s__site_id, s.date_add AS s__date_add, s.title AS s__title, s.content AS s__content, s2.id AS s2__id, s2.slug AS s2__slug, s2.name AS s2__name, s2.date_add AS s2__date_add, COUNT(s3.id) AS s3__0
FROM spin_content_src s
LEFT JOIN spin_sites s2 ON s.site_id = s2.id, spin_content_spinned s3
GROUP BY s.id
ORDER BY s.date_add DESC
Il n'y a qu'un seul LEFT JOIN
Je suppose que le problème vient de la 2éme jointure, mais je ne sais pas comment le résoudre.

Vous avez une solution ?

Merci