Bonsoir,
Je viens vers vous suite à un problème qui me bloque depuis un bon moment sur une requête SQL.
J'ai une table contenant les messages d'un forum, et chaque entrée a une date en timestamp. Ce que je souhaite, c'est faire une sorte de courbe d'activité en regroupant les messages par membres et par mois.
J'ai réussi en partie avec la requête suivante qui marche nickel, en plus d'être rapide :
Le problème, c'est que cette requête n'affiche pas les mois où aucun message n'a été posté. Et je voudrai que ce soit le cas, sinon mes stats seraient inexactes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT DATE_FORMAT(FROM_UNIXTIME(post_time), '%Y %m') as date, COUNT(*) as count FROM phpbb_posts WHERE poster_id='2' GROUP BY date
J'ai donc cherché sur des forums, et j'ai trouvé une piste : faire une table annexe où je liste l'intégralité des mois, pour ensuite faire une jointure avec la table des messages afin de ne pas zapper les mois sans messages.
Voici ce que ça donne... Malheureusement pour moi, ça ne marche pas, ça me donne exactement le même résultat que la précédente requête (et c'est beaucoup plus lent).
Avez-vous une idée de comment je pourrai m'en sortir ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT DATE_FORMAT(FROM_UNIXTIME(phpbb_posts.post_time), '%Y %m') as date, COUNT(*) as count FROM listemois LEFT JOIN phpbb_posts ON listemois.dateYM = DATE_FORMAT(FROM_UNIXTIME(phpbb_posts.post_time), '%Y %m') where phpbb_posts.poster_id='2' GROUP BY date![]()
Partager