IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

COUNT avec LEFT JOIN qui renvoie toujours 1


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 87
    Points
    87
    Par défaut COUNT avec LEFT JOIN qui renvoie toujours 1
    Bonjour à tous,

    Pour commencer voilà le mini modèle relationnel :

    ALBUM(id_album, nom_album)
    PHOTO(id_photo, nom_photo, #id_album)

    Le but du jeu est d'afficher tous les albums présents dans la base avec le nombre de photos qu'ils contiennent.
    S'ils ne contiennent aucune photo, je veux qu'ils soient quand même affichés avec '0' comme nombre de photos.

    J'ai donc recours à une jointure LEFT JOIN pour que tous les albums soient affichés, même ceux qui n'ont aucune photo.

    Pour info voici la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT A.id_album, nom_album, COUNT(*) AS nbPhotos
    FROM ALBUM A
    LEFT JOIN PHOTO P ON A.id_album = P.id_album
    GROUP BY A.id_album, nom_album, nom_repertoire_album, date_album
    Le problème est le suivant :

    Tous les albums sont bien affichés, mais ceux qui n'ont aucune photo apparaissent avec '1' dans le champ COUNT.
    Les albums qui ont 1 photo apparaissent également avec un '1'.
    Pour ceux qui ont plus de une photo, pas de problème ils s'affichent avec le bon nombre de photos.

    Ma question est la suivante : comment arriver à avoir un champ COUNT égal à zéro si l'album ne contient aucune photo.

    Merci pour toute aide apportée

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 034
    Points : 23 779
    Points
    23 779
    Par défaut
    Essaie en remplaçant l'étoile par id_photo dans le count

    ced

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Points : 87
    Points
    87
    Par défaut
    Suis-je bête, c'est d'une logique implaccable ^^

    Merci beaucoup pour la solution

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Count et Left join en cascade qui ne passent pas
    Par Invité dans le forum Requêtes
    Réponses: 4
    Dernier message: 10/02/2010, 14h07
  2. Réponses: 8
    Dernier message: 11/05/2006, 23h18
  3. Plantage Mysql avec LEFT JOIN
    Par verticka dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/09/2005, 11h45
  4. requete avec left join et group by
    Par slc dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/09/2004, 18h03
  5. Export d'une vue avec LEFT JOIN
    Par schnourf dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/05/2003, 13h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo