Tom's Guide > Forum > Programmation > [RESOLU] Count dans un INNER JOIN

[RESOLU] Count dans un INNER JOIN

Forum Programmation : [RESOLU] Count dans un INNER JOIN

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour,
Voilà dans ma requete permettant de selectionner les news, j'aimerais également qu'il aille compter les commentaires pour la news, qui se trouvent sur une autre table, liée grâce à "id_news".

Voici ce que j'ai essayé de faire

Code :
  1. SELECT news_commentaires.id_news, news_rubriques.rubrique_name, news_cont.id, news_cont.title, news_cont.message, news_cont.author, DATE_FORMAT( news_cont.date, "%d-%m-%y à %H:%i:%s" ) AS date
  2. FROM news_cont
  3. INNER JOIN news_rubriques ON news_cont.rubrique = news_rubriques.id
  4. INNER JOIN news_commentaires ON news_cont.id = count( news_commentaires.id_news )
  5. LIMIT 0 , 30


Message édité par r0wien le 22-08-2007 à 14:14:29
------------------------------ Mon blog : http://blog.rownage.ch
Actualités Wii et programmation et d'autres de mes découvertes !
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Et que répond le serveur MySQL avec cette requete ?

Je verrais plutot quelque chose de ce genre :

Code :
  1. SELECT news_commentaires.id_news, news_rubriques.rubrique_name, news_cont.id, news_cont.title, news_cont.message, news_cont.author, DATE_FORMAT( news_cont.date, "%d-%m-%y à %H:%i:%s" ) AS date, COUNT( news_commentaires.id_news )
  2. FROM news_cont
  3. INNER JOIN news_rubriques ON news_cont.rubrique = news_rubriques.id
  4. INNER JOIN news_commentaires ON news_cont.id = news_commentaires.id_news
  5. LIMIT 0 , 30


mais sans conviction

Répondre à razi3l

Pour ma requete il me retourne
-> #1111 - Invalid use of group function

Pour la tienne
-> #1140 - Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

Merci pour cette réponse rapide :P

------------------------------ Mon blog : http://blog.rownage.ch
Actualités Wii et programmation et d'autres de mes découvertes !
Répondre à r0wien

Toujours sans conviction mais bon...

Code :
  1. SELECT news_commentaires.id_news, news_rubriques.rubrique_name, news_cont.id, news_cont.title, news_cont.message, news_cont.author, DATE_FORMAT( news_cont.date, "%d-%m-%y à %H:%i:%s" ) AS date, COUNT( news_commentaires.id_news )
  2. FROM news_cont
  3. INNER JOIN news_rubriques ON news_cont.rubrique = news_rubriques.id
  4. INNER JOIN news_commentaires ON news_cont.id = news_commentaires.id_news
  5. GROUP BY news_cont.id LIMIT 0 , 30


elle ne donne pas d'erreur mais je ne sais pas si le résultat sera celui désiré...


Message édité par razi3l le 22-08-2007 à 10:10:02
Répondre à razi3l

Si ca retournais déjà quelque chose ;)

------------------------------ Mon blog : http://blog.rownage.ch
Actualités Wii et programmation et d'autres de mes découvertes !
Répondre à r0wien

Enfaites

Code :
  1. SELECT news_rubriques.rubrique_name, news_cont.id, news_cont.title, news_cont.message, news_cont.author, DATE_FORMAT( news_cont.date, "%d-%m-%y à %H:%i:%s" ) AS date, COUNT( news_commentaires.id_news )
  2. FROM news_cont
  3. INNER JOIN news_rubriques ON news_cont.rubrique = news_rubriques.id
  4. INNER JOIN news_commentaires ON news_cont.id = news_commentaires.id_news
  5. GROUP BY news_cont.id
  6. LIMIT 0 , 30



Fonctionne, mais lorsqu'il y'a pas de commentaires, il retourne rien.

------------------------------ Mon blog : http://blog.rownage.ch
Actualités Wii et programmation et d'autres de mes découvertes !
Répondre à r0wien

Peut etre en remplacant le INNER JOIN par un LEFT JOIN mais c'est encore une fois purement théorique du fait que je ne peux pas tester avant...

Code :
  1. SELECT news_rubriques.rubrique_name, news_cont.id, news_cont.title, news_cont.message, news_cont.author, DATE_FORMAT( news_cont.date, "%d-%m-%y à %H:%i:%s" ) AS date, COUNT( news_commentaires.id_news )
  2. FROM news_cont
  3. INNER JOIN news_rubriques ON news_cont.rubrique = news_rubriques.id
  4. LEFT JOIN news_commentaires ON news_cont.id = news_commentaires.id_news
  5. GROUP BY news_cont.id
  6. LIMIT 0 , 30

Répondre à razi3l

oui c'était le LEFT JOIN, j'ai également trouvé ca ;) merci beaucoup

------------------------------ Mon blog : http://blog.rownage.ch
Actualités Wii et programmation et d'autres de mes découvertes !
Répondre à r0wien
Tom's Guide > Forum > Programmation > [RESOLU] Count dans un INNER JOIN
Aller à :

Il y a 734 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens