Bonjour, comment pallier l'absence de l'opérateur JOIN sous oracle, notamment la possibilté de faire un LEFT JOIN .
merci de votre aide.
Bonjour, comment pallier l'absence de l'opérateur JOIN sous oracle, notamment la possibilté de faire un LEFT JOIN .
merci de votre aide.
C'est possible dès la 9i, me semble-t-il
Pour y pallier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select * from A, B where A.id += B.id
Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2
N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD
Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
alors je précise je suis sous Oracle 8i...
Ben voilà !
Au Inner join équivaut le
Au outer Join équivaut (à quelques exceptions prêtes) le
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select * from A, B where A.id = B.id
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select * from A, B where A.id += B.id
Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2
N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD
Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
bon alors au risque d'insister :
ça marche impeccable, noter que c'est l'équivalent d' un INNER JOIN
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT MVXJDTA.MITMAS.MMITNO, MVXJDTA.MITMAS.MMITDS, CUSJDTA.OPRBAZ.ODZCIT FROM MVXJDTA.MITMAS, CUSJDTA.OPRBAZ WHERE MVXJDTA.MITMAS.MMITNO = CUSJDTA.OPRBAZ.ODITNO AND CUSJDTA.OPRBAZ.ODCUNO='930815'
par contre...
la ça marche pas ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT MVXJDTA.MITMAS.MMITNO, MVXJDTA.MITMAS.MMITDS, CUSJDTA.OPRBAZ.ODZCIT FROM MVXJDTA.MITMAS, CUSJDTA.OPRBAZ WHERE MVXJDTA.MITMAS.MMITNO += CUSJDTA.OPRBAZ.ODITNO AND CUSJDTA.OPRBAZ.ODCUNO='930815'
j'ai droit à ce superbe message d'erreur :
Error: ORA-00936: missing expression (State:37000, Native Code: 3A8)
Et ça ? :Envoyé par Isildur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT MVXJDTA.MITMAS.MMITNO, MVXJDTA.MITMAS.MMITDS, CUSJDTA.OPRBAZ.ODZCIT FROM MVXJDTA.MITMAS, CUSJDTA.OPRBAZ WHERE MVXJDTA.MITMAS.MMITNO (+) = CUSJDTA.OPRBAZ.ODITNO AND CUSJDTA.OPRBAZ.ODCUNO='930815'
N'oubliez pas d'éditer votre 1er message et d'ajouter [RESOLU] au titre de votre message une fois que vous avez la réponse !
Le signe plus doit être mis entre parenthèses pour être interprété comme symbole de jointure externe.
On écrit donc, selon le sens de la jointure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT... FROM A, B WHERE A.champ(+) = B.champ; ou SELECT... FROM A, B WHERE A.champ = B.champ(+);
Consultant / formateur Oracle indépendant
Certifié OCP 12c, 11g, 10g ; sécurité 11g
Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration
Bonjour je sais que le poste est ferme mais je ne peux laisser cela sans une petite info en plus ( http://download-east.oracle.com/docs...01/lexical.htm )<= pour valider ce que je dis.Envoyé par Isildur
Isildur avant d'ecrie des choses comme cela svp faite une recheche!!
une recherche de 2 secondes pour trouver la reponse.... c'est peu d'effort.
Je ne suis pas remonte plus haut que la version 7
[Both Oracle7 and Rdb7 SQL support implicit joins. An example of achieving this is by listing more than one table in the FROM clause.]
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager