Oracle jointures externes sont un moyen d'afficher des données sans filtrage supplémentaire des records . Si deux tableaux contiennent des données connexes, il est probable que l'une des tables peut pas avoir tous les documents . Cela ne peut se produire quand il n'y a pas de contraintes sur les tableaux précisant que les dossiers doivent être présents. Par exemple, si une entreprise a un certain nombre de clients , il est possible qu'à tout moment, le client peut ne pas avoir commandé des produits. La situation inverse peut aussi être vrai dans la mesure où les produits ne peuvent pas avoir des clients qui leur sont assignées . Instructions
1
Sélectionnez deux tables de votre base de données Oracle pour lesquels il peut y avoir des enregistrements existants en un seul, mais pas nécessairement dans l'autre. Le tableau avec les documents manquants option sera connu comme la table externe dans ce cas.
2
Choisissez l'ordre de la requête, en termes de décider lequel des tables mentionnées dans la requête (gauche ou droite) formera la jointure externe . Un exemple éclaircit ce point comme suit :
sélectionner c.customerlastname , AB
p.productid
de
client
c , p productorders
< p> où c.customerid = p.customerid ;
de cette requête une décision doit être prise , avez-vous besoin d'une liste de toutes les commandes de produits avec ( ou sans ) les clients ou la situation inverse à savoir une liste de les clients , avec ou sans commandes passées ?
Le 3
place un indicateur ( +) pour identifier la table à partir de laquelle les lignes optionnelles sont retournés à savoir avoir des dossiers ou pas . Dans cet exemple, la table des produits peut ou peut ne pas avoir les commandes contre eux, et donc ce sera une jointure externe gauche :
sélectionner c.customerlastname , AB
p.productid
< p > à partir de
client c , productorders p
où c.customerid = p.customerid (+) ;
Si la requête nécessaire de trouver des produits qui ne peuvent pas avoir des clients contre eux, la clause where seraient:
où c.customerid (+) = p.customerid ;
4
exécuter la requête et renvoie le résultat . L'exemple jointure externe gauche reviendra dossiers similaires à ce qui suit :
c.customerlastname 123423
Jones
Carr 89654
Bernardstein 66543
Notez que pour cette jointure externe gauche , le seul client dans cette liste sans ordre est " Jones ».