Plusieurs count dans une requete = multiplication

Plusieurs count dans une requete = multiplication - SQL/NoSQL - Programmation

Marsh Posté le 14-02-2008 à 17:40:50    

Bonjour,
 
Voilà j'ai un petit probleme avec ma requete, elle fonctionne mais me renvois des des résultats érronés pour les 2 counts, j'ai l'impression qu'il se multiplie entre eux...
 
Voilà ma requête actuel...
 

Code :
  1. $sql = "SELECT films.*, count(v.ID) AS vote, AVG(v.note) AS moyenne, count(c.ID) AS nb_com FROM films ";
  2. $sql .= "LEFT JOIN films_vote AS v ON v.id_film = films.ID ";
  3. $sql .= "LEFT JOIN commentaires AS c ON c.categorie = :categorie AND c.id_categorie = films.ID ";
  4. $sql .= "WHERE films.ID = :id_film GROUP BY films.ID";


 
Pourriez vous m'aidez s'il vous plait??

Reply

Marsh Posté le 14-02-2008 à 17:40:50   

Reply

Marsh Posté le 14-02-2008 à 17:42:26    

essaye plutot COUNT(DISTINCT tonChamp)


---------------

Reply

Marsh Posté le 14-02-2008 à 17:47:27    

Petite explication pour compléter la réponse de flo:
Tu as un produit cartésien entre fils_votes et commentaires.
En gros si tu as trois commentaires et quatre votes, ta requête ( sans le group ) remonte 12 lignes. Une fois groupés, les counts ne peuvent être bons.


---------------
Software and cathedrals are much the same - first we build them, then we pray.
Reply

Marsh Posté le 14-02-2008 à 17:50:53    

tres belle explication cher maitre [:negro]


---------------

Reply

Marsh Posté le 14-02-2008 à 17:52:43    

Chapeau bas, ça fonctionne a merveille... :) merci hardware.fr et tous ses membres

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed