Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/12/2010, 15h48   #1
Membre du Club
 
Étudiant
Inscription : octobre 2010
Messages : 39
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 39
Points : 53
Points : 53
Par défaut Problème de 0 avec un Count dans une requête

Bonjour, j'ai un problème avec une requête contenant un COUNT qui ne veux pas m'afficher les zéros :

Donc en fait la requête doit me retourner des données de la table CATEGORIE_DOCUMENT et le nombre de documents de cette catégorie.
Le problème c'est que la requête ne m'affiche pas les lignes dont le nombre de documents est 0.
Il me semblait que j'avais fut un temps un soucis identique et que je l'avais réglé mais impossible de retrouver la solution.
A part ce détail elle marche parfaitement...

Code :
1
2
3
4
5
SELECT idCatDoc, labelCatDoc, cheminCatDoc, labelTypeDocument, COUNT(DOCUMENT.idDoc)
FROM DOCUMENT, CATEGORIE_DOCUMENT, TYPE_DOCUMENT
WHERE CATEGORIE_DOCUMENT.idTypeDoc_Categorie=TYPE_DOCUMENT.idTypeDocument
AND DOCUMENT.idCatDoc_Document=CATEGORIE_DOCUMENT.idCatDoc
GROUP BY DOCUMENT.idCatDoc_Doc
Je vous joint l'extrait du MCD qui va bien des fois que ça puisse aider à la compréhension du problème ^^



Merci d'avance.
Images attachées
Type de fichier : jpg extrait MCD.JPG (16,0 Ko, 17 affichages)
Exentius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 15h55   #2
Membre confirmé
 
Homme Benjamin
Consultant informatique
Inscription : août 2007
Messages : 160
Détails du profil
Informations personnelles :
Nom : Homme Benjamin
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2007
Messages : 160
Points : 248
Points : 248
Code :
1
2
3
4
5
6
 
SELECT idCatDoc, labelCatDoc, cheminCatDoc, labelTypeDocument, COUNT(DISTINCT DOCUMENT.idDoc)
FROM CATEGORIE_DOCUMENT
JOIN TYPE_DOCUMENT ON CATEGORIE_DOCUMENT.idTypeDoc_Categorie=TYPE_DOCUMENT.idTypeDocument
LEFT JOIN DOCUMENT ON DOCUMENT.idCatDoc_Document=CATEGORIE_DOCUMENT.idCatDoc
GROUP BY DOCUMENT.idCatDoc_Doc

Mise à jour suite aux messages ci-dessous, désolé ...
bhamp0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 16h35   #3
Membre du Club
 
Étudiant
Inscription : octobre 2010
Messages : 39
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 39
Points : 53
Points : 53
Merci d'avoir répondu mais ta solution ne fonctionne pas ^^
J'ai une erreur avec quand je l'exécute dans PHPMyAdmin...
Code :
#1066 - Not unique table/alias: 'TYPE_DOCUMENT'
Apparemment il y a quelque chose que j'ai oublié de préciser.
La condition where :
Code :
WHERE CATEGORIE_DOCUMENT.idTypeDoc_Categorie=TYPE_DOCUMENT.idTypeDocument
Me sert juste à récupérer un label correspondant à afficher à la place d'une clé externe de la table.
Ce qui m'intéresse c'est de compter le nombre

Pourrai tu m'expliquer aussi comment elle est censée fonctionner car il me semble ne jamais avoir utilisé les instruction que tu as utilisé.
Merci.
Exentius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 18h25   #4
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 529
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 529
Points : 3 521
Points : 3 521
Saluton,
Il faut enlever le deuxième nom de table dans la clause FROM.
TYPE_DOCUMENT est déjà référencée dans la clause JOIN qui suit, d'où le message d'erreur.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 08h52   #5
Membre du Club
 
Étudiant
Inscription : octobre 2010
Messages : 39
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 39
Points : 53
Points : 53
Merci effectivement ça marche.
Je mets en résolu.
Exentius est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h03.


 
 
 
 
Partenaires

Hébergement Web