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 :

jointure sans enregistrement lié


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Développeur Full Stack
    Inscrit en
    Janvier 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Janvier 2007
    Messages : 30
    Points : 19
    Points
    19
    Par défaut jointure sans enregistrement lié
    Bonjour,

    je dois faire une requête comme celle-ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select nom, count(r.idclasse) as nb_resa from classe
    inner join reservation r on r.idclasse = c.idclasse
    group by reservation.idclasse
    pour trouver le nombre de réservations dans une classe.
    Le problème est que lorsqu'il n'y a pas encore de réservations, ça ne me renvoie pas la ligne.
    Je ne peux pas faire de 'union', vu la taille de la requête.
    De plus (pour info), je passe par le framework Zend.

    Il doit bien y avoir une solution pour avoir au moins le nom, voire le nombre de resas quand il y en a !?

    Merci d'avance,
    Nico.

  2. #2
    Membre à l'essai
    Profil pro
    Développeur Full Stack
    Inscrit en
    Janvier 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Janvier 2007
    Messages : 30
    Points : 19
    Points
    19
    Par défaut
    Le problème était le group by, que j'aurais dû faire sur le 'classe' et non sur 'reservation'...
    Sinon tous les enregistrements ne contenant pas de réservations se retrouvent regroupés ensemble.
    Ca donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select nom, count(r.idclasse) as nb_resa from classe
    inner join reservation r on r.idclasse = c.idclasse
    group by classe.idclasse
    Merci!

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Points : 208
    Points
    208
    Par défaut
    Bonjour,

    Dans le cas où tu veux les lignes qui n'ont pas de lien avec l'autre table (pas de réservation en l’occurrence, il faut faire une jointure externe, à savoir left outer join dans ton cas.


    Petit conseil, il y a plein de tutos pour SQL, en particulier sur ce site, n'hésite pas à les explorer, ça te fera gagner du temps dans tes développements, véridique !

    Pour info, en plus de la jointure qui n'est pas bonne, tu as 2 erreurs qu'il te faudra corriger pour que ça marche parfaitement, mais là je te laisse chercher, tu vas les trouver c'est sûr !

    Cordialement

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Points : 208
    Points
    208
    Par défaut
    re-bonjour,

    excuses moi j'ai été lent à répondre et tu posté avant moi, tu as trouvé le pb group by mais il reste quand même 2 choses fausses dans ta requête :
    le type de jointure + l'alias 'c' qui est manquant. Attention à utiliser les alias à fond ou pas du tout, sinon, c'est source d'erreurs (et ça n'est pas lisible)

Discussions similaires

  1. [VBA - Excel]nom du classeur sans enregistrer
    Par comme de bien entendu dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/01/2008, 14h26
  2. Faire apparaitre les lignes sans enregistrements.
    Par bolderiz dans le forum Designer
    Réponses: 8
    Dernier message: 22/05/2007, 13h44
  3. Réponses: 2
    Dernier message: 25/09/2006, 17h24
  4. Sous-formulaire sans enregistrement..
    Par Invité dans le forum IHM
    Réponses: 3
    Dernier message: 04/09/2006, 13h45
  5. Réponses: 1
    Dernier message: 01/06/2006, 09h11

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