Mauvais résultat lors d'un COUNT()

Nouveau WRInaute
Bonsoir,

Je suis depuis un moment sur un soucis plutôt gênant ...

Lors d'une requête je compte le nombre d'actualités ainsi que le nombre de commentaires, cependant, lorsque je fais ma jointure celle-ci me rapporte un mouvais résultat ... Mais lors d'une simple requête SQL celle-ci me renvoie les bonnes valeurs.

Ma requête SQL
Code:
SELECT COUNT(a.id) AS nbActu, COUNT(b.id) AS nbCommentaire FROM sites_actu AS a 
	LEFT JOIN sites_commentaire AS b ON (a.site=b.idSite AND b.valider='1')
WHERE a.site= :site AND a.actif='1'");

Merci d'avance,

Cordialement,
 
WRInaute impliqué
L'objectif est bien de compter le nombre d'actualité et de commentaire ?
Si oui, essaies ceci:
Code:
SELECT COUNT(UNIQUE a.id) AS nbActu, COUNT(b.id) AS nbCommentaire FROM sites_actu AS a
LEFT JOIN sites_commentaire AS b ON (a.site=b.idSite AND b.valider='1')
WHERE a.site= :site AND a.actif='1'");
Le UNIQUE évite de compter en double les actus.

Deux requêtes seraient quand même plus simple à gérer et pas forcément plus longues en temps.
 
WRInaute impliqué
Si, quand tu crées une table, tu peux préciser si un champ doit être unique.
Code:
CREATE TABLE IF NOT EXISTS `test` (
    `id` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    `email` VARCHAR(255) NOT NULL UNIQUE,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Ça crée un index unique.
 
Discussions similaires
Haut