Page 1 sur 1

Problème de COUNT

Posté : 24 févr. 2007, 01:49
par momox
Bonsoir,
je suis un peu perdu avec une de mes reqêtes SQL comportant un COUNT.
Le problème étant que celui-ci me renvoie le double des messages qu'il y a véritablement :/
Voici la requete incriminée...
			$s_topics = "SELECT ft.topic_id as t_id, ft.topic_title as t_title, ft.topic_last_pid as t_last_pid, ft.topic_views as t_views, ft.topic_status as t_status, ft.topic_sticky as t_sticky, ft.topic_moved_to as t_moved_to, COUNT(fpc.post_id) as t_replies, m.user_nick as t_last_auth, m.user_id as t_last_uid, fp.post_date as t_last_date, COUNT(ftc.topic_id) as t_total_topics, ma.user_nick as t_auth_nick, ft.topic_uid as t_auth_uid, ft.topic_date as t_date
						FROM forum_topics as ft, forum_topics as ftc, forum_posts as fpc, forum_posts as fp, membres as m, membres as ma
						WHERE ft.topic_fid='$fid' 
							AND ft.topic_uid=ma.user_id
							AND ftc.topic_fid='$fid' 
							AND ft.topic_last_pid=fp.post_id 
							AND fpc.post_tid=ft.topic_id 
							AND fp.post_uid=m.user_id 
						GROUP BY fpc.post_tid, fp.post_tid 
						ORDER BY fp.post_date DESC, ft.topic_sticky DESC, ftc.topic_id LIMIT $start, 25;";
Le count incriminé est le suivant :

Code : Tout sélectionner

COUNT(fpc.post_id) as t_replies
Je suis vraiment perdu et je n'arrive pas du tout a comprendre pourquoi il me fait ca...
Je vous remercie d'avance :)

Posté : 24 févr. 2007, 13:07
par Truc
Salut,

Tu pioches deux fois dans la table des membres (FROM)... normal ?

Sinon une bonne manière de trouver est de décomposer la requete...
tu ajoutes table par table à la requete... au début deux tables si le résultat est bon tu ajoutes une troisième... ainsi de suite.

(ne dépasse pas les 15 tables non plus tu peux plus ralentir la requete que si tu en faisais deux)

Posté : 24 févr. 2007, 13:09
par momox
Je pioche deux fois dans la table des membres afin de récuperer l'auteur original du post ainsi que l'auteur du dernier post :?
Donc c'est pour ca que la requête peut paraitre un peu bizarre...

Posté : 25 févr. 2007, 03:00
par momox
J'ai réussi a résoudre le problème...
Mais j'ai du ajouter une requete supplémentaire :?
@+