Jointure externe gauche sur plusieurs tables dans Oracle
Comment écrire un oracle de la requête qui est équivalent à la requête ci-dessous dans informix:
select tab1.a,tab2.b,tab3.c,tab4.d
from table1 tab1,
table2 tab2 OUTER (table3 tab3,table4 tab4,table5 tab5)
where tab3.xya = tab4.xya
AND tab4.ss = tab1.ss
AND tab3.dd = tab5.dd
AND tab1.fg = tab2.fg
AND tab4.kk = tab5.kk
AND tab3.desc = "XYZ"
J'ai essayé:
select tab1.a,tab2.b,tab3.c,tab4.d
from table1 tab1,
table2 tab2 LEFT OUTER JOIN (table3 tab3,table4 tab4,table5 tab5)
where tab3.xya = tab4.xya
AND tab4.ss = tab1.ss
AND tab3.dd = tab5.dd
AND tab1.fg = tab2.fg
AND tab4.kk = tab5.kk
AND tab3.desc = "XYZ"
Quelqu'un peut-il m'aider à trouver la syntaxe correcte.
source d'informationauteur divya chekuri
Vous devez vous connecter pour publier un commentaire.
Écrire un tableau par rejoindre, comme ceci:
Note que bien que ma requête contient la jointure gauche, votre requête apparemment ne l'est pas. Puisque les conditions sont dans le où, votre requête devrait se comporter comme des jointures internes. (Même si j'avoue que je ne sais pas Informix, alors peut-être je me trompe).
Si c'est effectivement le cas, vous pouvez modifier à gauche se joindre à la jointure interne. Vous devez utiliser une jointure interne si possible, car ils sont plus rapides que les left join.
PS: Left join et jointure externe gauche sont les mêmes.
Je suppose que vous voulez quelque chose comme