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 :

Jointure externe complexe avec syntaxe simple


Sujet :

SQL Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 46
    Points : 38
    Points
    38
    Par défaut Jointure externe complexe avec syntaxe simple
    Bonjour,
    J'ai un petit souci : j'utilise un outil qui ne permet pas d'écrire les jointures externes sous la forme ... LEFT OUTER JOIN [ma table ] ON mais seulement en utilisant la syntaxe simplifiée =(+)[ma table]
    Le problème se pose quand je veux poser un filtre sur une table avant d'effectuer une jointure externe sur cette même table :
    J'ai par exemple la liste d'appartements, avec les travaux effectués. (Ceci est un exemple adapté de mon problème réel)
    La table appartement (id, nom...)
    La table pièce (id, id_appartement,...)
    La table travaux (id, type_travaux)
    La table peinture (id, id_travaux, date, couleur_peinture)
    Je veux avoir toutes la liste des pièces, et si les pièces ont été peintes en bleu, la date de la dernière peinture.
    Ca se traduit par une requete qui se termine par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .... LEFT OUTER JOIN PEINTURE ON (travaux.id = peinture.id_travaux AND couleur='bleu').
    Jusque là tout va bien.
    Mais quand j'essaie d'écrire la meme avec la syntaxe Oracle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    WHERE
    travaux.id = peinture.id_travaux(+)
     AND couleur='bleu'
    j'ai beau mettre toutes les parenthèses que je veux, je ne récupère que les appartements qui ont été peints en bleu...

    Si quelqu'un avait une idée...

  2. #2
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Il manque un (+) au niveau de couleur, puisque cette colonne appartient à la table peinture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WHERE
    travaux.id = peinture.id_travaux(+)
     AND couleur (+) ='bleu'
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 46
    Points : 38
    Points
    38
    Par défaut
    ça marche,
    merci beauocup

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

Discussions similaires

  1. [VxiR2] Jointure externe complexe ou théta-jointure externe
    Par ouistitis dans le forum Designer
    Réponses: 7
    Dernier message: 22/07/2010, 19h15
  2. jointure externe complexe avec informatica
    Par titpuce dans le forum Informatica
    Réponses: 2
    Dernier message: 03/09/2008, 14h05
  3. Requête avec jointure externe complexe
    Par dpin33 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 04/03/2008, 13h41
  4. Réponses: 32
    Dernier message: 07/11/2007, 12h19
  5. Réponses: 24
    Dernier message: 24/07/2007, 17h48

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