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...