[PL/SQL] le rôle exact du (+) dans une clause [Fermé]

Signaler
Messages postés
1
Date d'inscription
mercredi 6 juin 2007
Statut
Membre
Dernière intervention
6 juin 2007
-
 mathanz -
Bonjour,
quelqu'un pourrait m'expliquer précisémment le role du "(+)" dans la requete suivante svp ?

select * from table1 t, table2 t2 where
t.t1 = 'toto' AND
t.t2 > 3 AND
t.t4(+) = t2.t1

Merci !

2 réponses

Messages postés
29764
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
12 octobre 2020
6 809
Bonjour,

Cette syntaxe est utilisée pour prendre en compte dans le resultat les lignes où le champ t.t4 n'est pas renseigné (positionné à null). Ces lignes sont donc ajoutées au resultat en plus de celles qui repondent à la condition.

C'est ce qui s'appelle une Jointure externe :

Lorsqu'une ligne d'une table figurant dans une jointure n'a pas de correspondant dans les autres tables, elle ne satisfait pas au critère d'équi-jointure et donc ne figure pas dans le résultat de la jointure.
Une option permet de faire figurer dans le résultat les lignes satisfaisant la condition d'équi-jointure plus celles n'ayant pas de correspondant. Cette option s'obtient en accolant (+) au nom de colonne de la table dans laquelle manquent des éléments, dans la condition d'équi-jointure.

cdt
23
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

merci bcp pour cette réponse très claire ! ;)