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 :
Jusque là tout va bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part .... LEFT OUTER JOIN PEINTURE ON (travaux.id = peinture.id_travaux AND couleur='bleu').
Mais quand j'essaie d'écrire la meme avec la syntaxe Oracle :
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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ... WHERE travaux.id = peinture.id_travaux(+) AND couleur='bleu'
Si quelqu'un avait une idée...
Partager