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 :

jointures externes multiples


Sujet :

Langage SQL

  1. #1
    Membre éprouvé Avatar de beren.kei
    Inscrit en
    Mai 2008
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2008
    Messages : 135
    Par défaut jointures externes multiples
    bonjour,
    j'ai un problème avec une requête...
    il faut savoir que je travaille sous visual studio 2005 et je veux afficher des informations dans un formulaire, tirées d'une base Access 2000

    ébauche de requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT * FROM T_Intervenant 
      LEFT OUTER JOIN (T_Type_Contrat ON T_Intervenant.Ref_contrat = T_Type_Contrat.Ref_contrat)
      LEFT OUTER JOIN (T_Region ON T_Intervenant.Ref_region = T_Region.Ref_region)
      LEFT OUTER JOIN T_Contact_ENERGITIM ON T_Intervenant.Ref_contact = T_Contact_ENERGITIM.Ref_contact
    WHERE T_Intervenant.Ref_Intervenant = " + NumIntervenant"
    donc je souhaite savoir, par 'intervenant', leur type de contrat, région d'origine et la personne contactée dans l'entreprise, mais ces champs ne sont pas tous nécessairement renseignés... d'ou les jointures externes
    mais le debogueur de visual studio me renvoi l'erreur suivante :
    Erreur de syntaxe (opérateur absent) dans l'expression 'T_Intervenant.Ref_region = T_Region.Ref_region LEFT OUTER JOIN T_Contact_ENERGITIM ON T_Intervenant.Ref_contact = T_Contact_ENERGITIM.Ref_contact'.
    si quelqu'un peut me dire ce qui ne va pas...
    merci!!!

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 134
    Par défaut
    Access supporte mal qu'il y ait plusieurs jointures dans une requête. Il faut ajouter des parenthèses pour l'aider.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT     *
    FROM    (    (    T_Intervenant 
                  LEFT OUTER JOIN 
                      T_Type_Contrat 
                      ON T_Intervenant.Ref_contrat = T_Type_Contrat.Ref_contrat
                )
                  LEFT OUTER JOIN 
                      T_Region 
                    ON T_Intervenant.Ref_region = T_Region.Ref_region
            )
              LEFT OUTER JOIN 
                  T_Contact_ENERGITIM 
                ON T_Intervenant.Ref_contact = T_Contact_ENERGITIM.Ref_contact
    WHERE    T_Intervenant.Ref_Intervenant = " + NumIntervenant"
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre éprouvé Avatar de beren.kei
    Inscrit en
    Mai 2008
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2008
    Messages : 135
    Par défaut
    j'ai modifié la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT * 
    FROM ((T_Intervenant LEFT OUTER JOIN T_Type_Contrat ON T_Intervenant.Ref_contrat = T_Type_Contrat.Ref_contrat)
                 LEFT OUTER JOIN T_Region ON T_Intervenant.Ref_region = T_Region.Ref_region)
                LEFT OUTER JOIN T_Contact_ENERGITIM ON T_Intervenant.Ref_contact = T_Contact_ENERGITIM.Ref_contact
                WHERE T_Intervenant.Ref_Intervenant =  + NumIntervenant
    je n'ai plus d'erreur!!! c'est deja bien, merci
    mais il ne m'affiche que le type_contrat (donc la premiere jointure) alors que la base est correcte (je viens de vérifier les enregistrements)... bizarre...

    est-ce que je dois faire un UNION avec une deuxieme requete??

  4. #4
    Membre éprouvé Avatar de beren.kei
    Inscrit en
    Mai 2008
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2008
    Messages : 135
    Par défaut oups!!
    desolé, en fait ca ne s'affichait aps car, comme ca plantait avant, j'avais desactivé les champs d'afichage...


    par contre les parenthèses sont bien nécessaires, sans ca fonctionne pas!!!
    merci

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/11/2011, 10h48
  2. [Vxi3] jointures externes multiples
    Par raithfall dans le forum Designer
    Réponses: 2
    Dernier message: 20/12/2010, 10h13
  3. Souci de jointures externes multiples
    Par dJe781 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 09/02/2009, 14h25
  4. Jointures externes multiples en SQL ACCESS
    Par philnext dans le forum Langage SQL
    Réponses: 3
    Dernier message: 08/09/2007, 16h53
  5. [Oracle 8] Jointure externe multiple et valeurs nulles !!!
    Par nsonnier dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/03/2006, 22h22

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