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 :

[SQL] jointure externe avec 3 tables, comment faire ....


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Points : 6
    Points
    6
    Par défaut [SQL] jointure externe avec 3 tables, comment faire ....
    Bonjour,

    J'ai une requete sql qui a besoin de faire une jointure externe entres 3 tables et une valeur :
    and Table1.C1 (+) = Tables2.C1
    and Table1.C2 (+) = Tables3.C2
    and Table1.C3 (+) = 'X'

    Je suis sous Oracle 8, et j'ai une erreur en me disant en gros que ca va pas au niveua de la jointure externe.

    Si je tente un truc comme ca :

    and Table1.C1 (+) = 'A'
    and Table1.C2 (+) = 'B'
    and Table1.C3 (+) = 'X'

    Ca fonctionne et ca me donne bien le bon resultat.
    J'en deduit donc que l'on ne peut faire qu'une seule jointure externe a partir d'une table.....
    Je cherche donc un moyen pour ou corriger ca, faire l'equivalent, ou utiliser une autre fonction me permettant de faire 2 jointures externes.

    Je ne peux rien utiliser d'autre que du sql (pas de pl sql ou du code), car il s'agit d'une correction a apporter dans les proprietés d'une forms .

    Je me casse la tête la dessus, mais sans succés pour l'instant, donc si qqun avait un coup de génie, je suis plus que preneur .

  2. #2
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    J'approche du resultat en faisant une sous requete du genre :

    and Table1.C3 (+) = 'X'
    and Table1.C1 (+) = Tables2.C1
    and Table1.C2 IN (sous requete)

    le probleme est que le IN ne respecte pas la jointure externe que je voudrais faire (c.a.d un truc dans le genre :
    "and Table1.C2 (+) IN (sous requete) "

    Je ne peux pas utiliser :
    "and Table1.C2 (+) = (sous requete) "
    car la sous requete renvoie plusieurs lignes ....

    en gros maintenant mon probleme pourrais etre : "comment faire une jointure externe sur une sous requete ?"

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Bon j'ai simplifié le probleme en reecrivant la requete a l'aide d'union all et de not in(pas tres jolie mais bon ca semble fonctionner)

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

Discussions similaires

  1. Jointure externe avec plus d'une table
    Par laymo dans le forum SQL
    Réponses: 4
    Dernier message: 21/08/2012, 14h17
  2. Requete SQL jointure externe sur plusieurs tables
    Par mattmax dans le forum Développement
    Réponses: 4
    Dernier message: 28/12/2010, 10h07
  3. Réponses: 0
    Dernier message: 07/04/2010, 18h53
  4. Réponses: 3
    Dernier message: 29/10/2007, 13h04
  5. jointure externe avec un where, me pose problème!
    Par Danae dans le forum Langage SQL
    Réponses: 3
    Dernier message: 18/07/2005, 17h37

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