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

Langage SQL Discussion :

Problème de LEFT JOIN


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Points : 11
    Points
    11
    Par défaut Problème de LEFT JOIN
    Bonjour à tous et toutes,

    J'ai un petit problème concernant les LEFT JOIN. Je suis sous Access 2003 et j'execute une requete sur 3 tables, tuteur, binome, et etudiant.

    Lorsque j'utilise des inner join, cela fonctionne, cf le code ci dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT binome.idTuteur AS binome_idTuteur, binome.idEtudiant AS binome_idEtudiant, binome.annee, binome.status, binome.probleme, binome.descriptionProbleme, binome.dateResolution, etudiant.idEtudiant AS etudiant_idEtudiant, etudiant.nom AS etudiant_nom, etudiant.prenom AS etudiant_prenom, tuteur.idTuteur AS tuteur_idTuteur, tuteur.nom AS tuteur_nom, tuteur.prenom AS tuteur_prenom, tuteur.telephone, tuteur.portable, tuteur.email
     
    FROM (tuteur INNER JOIN (etudiant INNER JOIN binome ON etudiant.idEtudiant = binome.idEtudiant)
    ON binome.idTuteur = tuteur.idTuteur);

    Par contre, dès que je souhaite remplacerun de mes INNER JOIN par un LEFT JOIN ou un LEFT OUTER JOIN, je me tape un superbe expression de jointure non supportée


    Quelqu'un aurait une idée? merci d'avance

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    okok, des petites informations supplémentaires,

    après création de la même requete par l'assistant, cette dernière est donc enregistrable mais au moment de l'exécution, j'obtiens une erreur de type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Instruction SQL non exécutée : des jointures externes ambiguës. Pour forcer l'ordre d'exécution des jointures, créez une requête distincte qui exécute la première jointure, puis insérez cette requête dans votre instruction SQL. (Erreur 3258)
    Il me demande donc d'exécuter 2 requetes l'une à la suite de l'autre

    J'aurai aimé éviter de m'orienter vers ca mais bon... Si vous avez des idées pour spécifier l'odre des jointures dans une seule requete, je suis preneur.

  3. #3
    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 040
    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 040
    Points : 23 795
    Points
    23 795
    Par défaut
    Effectivement, l'écriture de la jointure est un peu "surprenante"
    Essaie avec l'écriture suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT binome.idTuteur AS binome_idTuteur, binome.idEtudiant AS binome_idEtudiant, binome.annee, binome.STATUS, binome.probleme, binome.descriptionProbleme, binome.dateResolution, etudiant.idEtudiant AS etudiant_idEtudiant, etudiant.nom AS etudiant_nom, etudiant.prenom AS etudiant_prenom, tuteur.idTuteur AS tuteur_idTuteur, tuteur.nom AS tuteur_nom, tuteur.prenom AS tuteur_prenom, tuteur.telephone, tuteur.portable, tuteur.email
    FROM tuteur 
    INNER JOIN binome ON tuteur.idTuteur = binome.idTuteur
    INNER JOIN etudiant ON binome.idEtudiant = etudiant.idEtudiant
    Puis en remplaçant les INNER par des LEFT JOIN...

    ced

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    sur cette requete j'ai un

    "erreur de syntaxe (opérateur absent) dans l'expression 'tuteur.idTuteur = binome.idTuteur INNER JOIN etudiant ON binome.idEtudiant = etudiant.idEtudiant' "

    Mais je crois qu'Access est un peu capricieux concernant les parenthèses :p

    par contre en mettant 2 je peux insérer mon LEFT JOIN dans la sous requête. C'est à n'y rien comprendre

    Même si je n'obtiens pas le résultat souhaité (pas les bonnes tables dans le bon ordre), ca à l'air de fonctionner en exécutant 2 requetes successives et en charchant le resultat dans les enregistrement sde la seconde requete


    Merci en tout cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT binome.idTuteur AS binome_idTuteur, binome.idEtudiant AS binome_idEtudiant, binome.annee, binome.STATUS, binome.probleme, binome.descriptionProbleme, binome.dateResolution, etudiant.idEtudiant AS etudiant_idEtudiant, etudiant.nom AS etudiant_nom, etudiant.prenom AS etudiant_prenom, tuteur.idTuteur AS tuteur_idTuteur, tuteur.nom AS tuteur_nom, tuteur.prenom AS tuteur_prenom, tuteur.telephone, tuteur.portable, tuteur.email
    FROM (tuteur 
    INNER JOIN binome ON tuteur.idTuteur = binome.idTuteur) LEFT JOIN etudiant ON binome.idEtudiant = etudiant.idEtudiant

  5. #5
    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 040
    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 040
    Points : 23 795
    Points
    23 795
    Par défaut
    Citation Envoyé par Louch Voir le message
    Mais je crois qu'Access est un peu capricieux concernant les parenthèses :p
    Si il n'y avait que sur ça qu'il est capricieux...
    Tant mieux si ça marche...
    ced

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

Discussions similaires

  1. Problème requête LEFT JOIN
    Par absot dans le forum Requêtes
    Réponses: 2
    Dernier message: 30/05/2011, 00h20
  2. Problème avec LEFT JOIN
    Par devdev dans le forum WinDev
    Réponses: 7
    Dernier message: 16/03/2010, 10h22
  3. Problème avec LEFT JOIN
    Par okilele dans le forum Outils
    Réponses: 2
    Dernier message: 13/08/2007, 12h55
  4. Problème avec LEFT JOIN
    Par Sorgue dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/01/2007, 18h37
  5. problème ave LEFT JOIN dans MySql
    Par lm0210 dans le forum Requêtes
    Réponses: 3
    Dernier message: 16/05/2006, 19h46

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