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 :

Problème requête LEFT JOIN


Sujet :

Requêtes MySQL

  1. #1
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Points : 1 667
    Points
    1 667
    Par défaut Problème requête LEFT JOIN
    Bonjour, j'ai un problème avec une requête SQL.

    Voici mes 2 tables:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Activite:
    id  nom  detail  idEtudiant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Etudiant
    id  nom  prenom
    Mes 2 tables sont en relations et je souhaiterais faire une requête SQL pour avoir le nom de chacun des étudiants avec le nombre d'activité qu'il possède.

    J'ai donc fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT e.id, e.nom, e.prenom, COUNT(a.id) AS nb
    FROM Activite a,  Etudiant e
    WHERE a.idEtudiant = e.id
    GROUP BY e.id
    Seulement, je n'obtiens que les étudiants qui possèdes des activités or, j'aurais également besoin de ceux qui n'en ont pas et je sais qu'il faut pour cela utiliser LEFT JOIN ou RIGHT JOIN.

    J'ai donc modifié ma requête en:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT e.id, e.nom, e.prenom, COUNT(a.id) AS nb
    FROM Etudiant e, Activite a
    LEFT JOIN Activite ON e.id = a.idEtudiant
    GROUP BY e.id
    J'obitiens l'erreur SQL comme quoi la colonne "e.id" est inconnue..

    Qu'est-ce qui ne va pas svp?

  2. #2
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Ce qui ne va pas, c'est que tu mélanges la syntaxe de jointures obsolète depuis 1992 (presque 20 ans quand même !) et la syntaxe normalisée depuis cette date !

    Ta requête devient ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT e.id, e.nom, e.prenom, COUNT(a.id) AS nb
    FROM Etudiant e
    LEFT JOIN Activite a ON e.id = a.idEtudiant
    GROUP BY e.id, e.nom, e.prenom
    De plus, tu remarqueras au passage qu'il faut que toutes les colonnes du SELECT ne faisant pas l'objet de fonction d'agrégation figurent dans le GROUP BY.

  3. #3
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Points : 1 667
    Points
    1 667
    Par défaut
    Ca fonctionne, une révision SQl s'impose, merci.

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

Discussions similaires

  1. [Access2003]-Perte de données requête left join
    Par alcabk dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 11/10/2007, 12h45
  2. Problème de LEFT JOIN
    Par Louch dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/09/2007, 13h17
  3. Problème avec LEFT JOIN
    Par okilele dans le forum Outils
    Réponses: 2
    Dernier message: 13/08/2007, 13h55
  4. Problème avec LEFT JOIN
    Par Sorgue dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/01/2007, 19h37
  5. problème ave LEFT JOIN dans MySql
    Par lm0210 dans le forum Requêtes
    Réponses: 3
    Dernier message: 16/05/2006, 20h46

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