Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/01/2008, 11h29   #1
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 117
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 117
Points : 15
Points : 15
Envoyer un message via Yahoo à ninsekh
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 :
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!!
ninsekh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 11h39   #2
Membre Expert
 
Avatar de scheu
 
Inscription : juin 2007
Messages : 1 497
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 497
Points : 1 485
Points : 1 485
Code :
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)
scheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 11h43   #3
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
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
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 12h18   #4
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 117
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 117
Points : 15
Points : 15
Envoyer un message via Yahoo à ninsekh
Par défaut Correction

Je voulais simplement dire erreur de syntaxe et non erreur de synthène.

Merci!!
ninsekh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 13h13   #5
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
ça nous apprend pas plus la nature de l'erreur en question
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 14h02   #6
Membre Expert
 
Avatar de scheu
 
Inscription : juin 2007
Messages : 1 497
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 497
Points : 1 485
Points : 1 485
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
scheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 14h09   #7
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 320
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
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 : 3 320
Points : 5 839
Points : 5 839
Code :
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)
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 14h21   #8
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
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
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 14h42   #9
Membre Expert
 
Avatar de scheu
 
Inscription : juin 2007
Messages : 1 497
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 497
Points : 1 485
Points : 1 485
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 ...
scheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 16h17   #10
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 320
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
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 : 3 320
Points : 5 839
Points : 5 839
Citation:
Envoyé par scheu Voir le message
Code :
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. ?
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 16h24   #11
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
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
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h17.


 
 
 
 
Partenaires

Hébergement Web