Sous Oracle 8i, la syntaxe LEFT JOIN n'existe pas (dispo à partir de oracle 9), on doit utiliser la jointure de type (+)= .

Cela fonctionne très bien dans le cas simple du style :

SELECT A.FIELD1 FROM TABLE1 A LEFT JOIN TABLE2 B ON A.FIELD1=B.FIELD2 WHERE A.FIELD4 = 1;

sera très bien traduit par :

SELECT A.FIELD1 FROM TABLE1 A , TABLE2 B WHERE A.FIELD1(+)=B.FIELD2 AND A.FIELD4 = 1;

mais dans le cas où j'ai besoin d'un critère de jointure, je ne sais pas comment faire :

SELECT A.FIELD1 FROM TABLE1 A LEFT JOIN TABLE2 B ON A.FIELD1=B.FIELD2 AND B.FIELD3='TEST' WHERE A.FIELD4 = 1;

parceque la syntaxe suivante :

SELECT A.FIELD1 FROM TABLE1 A ,TABLE2 B WHERE A.FIELD1(+)=B.FIELD2 AND B.FIELD3='TEST' AND A.FIELD4 = 1;

ne peut pas fonctionner correctement car le B.FIELD3='TEST' s'execute sur le résultat de la jointure et non sur la table jointe...

Si quelqu'un connait la bonne syntaxe, il est le bienvenue ;-)