Requête SQL count + join + where

Fermé
Paul - 15 nov. 2013 à 15:12
totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 - 7 déc. 2013 à 23:33
Bonjour,

J'ai la requête suivante :

SELECT COUNT(stats.urlid) AS total, links.id AS id

FROM stats
RIGHT OUTER JOIN links ON (links.id = stats.urlid)
GROUP BY stats.urlid

Qui fonctionne et me retourne bien :

TOTAL     |     ID

0 2
2 1
4 3

Maintenant, si je veux rajouter une condition :

SELECT COUNT(stats.urlid) AS total, links.id AS id

FROM stats
RIGHT OUTER JOIN links ON (links.id = stats.urlid)
WHERE stats.date <= DATE_FORMAT(NOW(), "%Y-%m-%d 18:00:00")
GROUP BY stats.urlid

Je me retrouve avec ceci :
TOTAL     |     ID

3 3

Au lieu de ceci :

TOTAL     |     ID

0 2
0 1
3 3

Merci pour votre aide !

1 réponse

totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 199
Modifié par totodunet le 7/12/2013 à 23:48
syntaxiquement c'est correct vu qui te retourne un résultat mais je ne connais pas tes tables. Visiblement il a retourné la dernière ligne de ce que tu voulais.

Je pense que c'est normal vu qu'il y a 0 et 0 pour tes deux premières, ce qui signifie qu'aucune des deux a eu une date <= à la date de ta condition. Il t'a retourné donc comme demandé seulement ce qui répond à la condition.

un soucis de jointure à mon avis

Qui ne tente rien n'a rien
0