Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/09/2011, 15h34   #1
Membre à l'essai
 
Inscription : novembre 2006
Messages : 121
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 121
Points : 22
Points : 22
Par défaut [Doctrine] Jointure + COUNT en DQL ?

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 :
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 :
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 :
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
Galdon est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h17.


 
 
 
 
Partenaires

Hébergement Web