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 régulier Avatar de beren.kei
    Inscrit en
    Mai 2008
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2008
    Messages : 135
    Points : 123
    Points
    123
    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 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 099
    Points : 28 390
    Points
    28 390
    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"

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 135
    Points : 123
    Points
    123
    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 régulier Avatar de beren.kei
    Inscrit en
    Mai 2008
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2008
    Messages : 135
    Points : 123
    Points
    123
    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