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

SQL Oracle Discussion :

Problème de jointure externe à plusieurs niveaux


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 122
    Points : 47
    Points
    47
    Par défaut Problème de jointure externe à plusieurs niveaux
    Bonjour Amis!

    J'exécute un script sql dans lequel il existe quatre(04) tables: A, B, C et D. Les trois premières tables ont deux (02) champs en commun Ch1 et Ch2. Les tables C et D ont le champs ChT en commun. j'effectue plusieurs jointures externe sur ces jointures et j'obtient ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT 
    A.champs,
    B.champs,
    C.champs,
    D.champs
     
    FROM
    A A LEFT OUTER JOIN B B ON (A.Ch1= B.Ch1 AND A.Ch2=B.Ch2)
    B B LEFT OUTER JOIN C C ON  (B.Ch1= C.Ch1 AND B.Ch2=C.Ch2)
    DD LEFT OUTER JOIN C C ON (D.ChT= CchT)
    Après execution une erreur de synthène est détectée. Alors, je ne trouve pas la bonne syntaxe qui me permetrait de gérer toutes ces jointures externes. Notons que ma base de données est de type Oracle 10g et que mon outils d'execution de mes scripts sql est TOAD 8. Je travail dans un environnement Windows (XP Professionnal).

    Merci d'avance pour votre aide!!

  2. #2
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT 
    A.champs,
    B.champs,
    C.champs,
    D.champs
     
    FROM
    A LEFT OUTER JOIN B ON (A.Ch1= B.Ch1 AND A.Ch2=B.Ch2)
    B LEFT OUTER JOIN C ON  (B.Ch1= C.Ch1 AND B.Ch2=C.Ch2)
    D LEFT OUTER JOIN C ON (D.ChT= CchT)
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  3. #3
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par ninsekh Voir le message
    Après execution une erreur de synthène est détectée.
    va encore falloir que je nettoie ma boule de crystal pour connaitre l'erreur

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 122
    Points : 47
    Points
    47
    Par défaut Correction
    Je voulais simplement dire erreur de syntaxe et non erreur de synthène.

    Merci!!

  5. #5
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    ça nous apprend pas plus la nature de l'erreur en question

  6. #6
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut
    Ben c'est pas juste une erreur de syntaxe parce qu'il met "A A" au lieu de "A", "B B" au lieu de "B", ... ? Cf mon précédent post
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  7. #7
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT 
    A.champs,
    B.champs,
    C.champs,
    D.champs
     
    FROM
    A A LEFT OUTER JOIN B B ON (A.Ch1= B.Ch1 AND A.Ch2=B.Ch2)
      LEFT OUTER JOIN C C ON  (B.Ch1= C.Ch1 AND B.Ch2=C.Ch2)
      LEFT OUTER JOIN D D ON (D.ChT= C.chT)

  8. #8
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par scheu Voir le message
    Ben c'est pas juste une erreur de syntaxe parce qu'il met "A A" au lieu de "A", "B B" au lieu de "B", ... ? Cf mon précédent post
    je sais bien mais j'aurais voulu qu'il comprenne l'inutilité de son message... t'as été trop gentil

  9. #9
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut
    Citation Envoyé par orafrance Voir le message
    je sais bien mais j'aurais voulu qu'il comprenne l'inutilité de son message... t'as été trop gentil
    désolé , c'est mon manque d'expérience sur ce forum ...
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  10. #10
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par scheu Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT 
    A.champs,
    B.champs,
    C.champs,
    D.champs
     
    FROM
    A LEFT OUTER JOIN B ON (A.Ch1= B.Ch1 AND A.Ch2=B.Ch2)
    B LEFT OUTER JOIN C ON  (B.Ch1= C.Ch1 AND B.Ch2=C.Ch2)
    D LEFT OUTER JOIN C ON (D.ChT= CchT)
    Vous y arrivez avec syntaxe, en fait la question est avez vous tester ça ? Parce que moi j'arrive pas? Et je ne vois pas de souci pour le A A, B B, etc. ?

  11. #11
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    la ligne entre la dernière colonne et le FROM doit pas être du meilleur effet non plus mais apparemment l'auteur ne souhaite pas intervenir à nouveau

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

Discussions similaires

  1. Problème avec jointure externe
    Par illight dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/04/2008, 12h23
  2. Problème de Jointure entre plusieurs tables
    Par Stouille89 dans le forum JDBC
    Réponses: 12
    Dernier message: 11/12/2007, 14h16
  3. Réponses: 24
    Dernier message: 24/07/2007, 17h48
  4. Problème de jointure externe
    Par Loko dans le forum Langage SQL
    Réponses: 15
    Dernier message: 24/07/2007, 12h04
  5. Problème de Jointure externe
    Par major2 dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/07/2007, 17h58

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