Sommaire : dans ce tutoriel, vous apprendrez à utiliser le RIGHT OUTER JOIN
dans Oracle pour joindre deux ou plusieurs tables.
Vue d’ensemble du RIGHT OUTER JOIN dans Oracle
Supposons que nous ayons deux tables T1
et T2
, l’instruction suivante montre comment joindre ces deux tables en utilisant la clause RIGHT OUTER JOIN
dans Oracle:
Dans cette instruction, T1
et T2
sont respectivement la table de gauche et de droite.
Le mot clé OUTER
est facultatif donc le RIGHT OUTER JOIN
et le RIGHT JOIN
sont les mêmes.
Voici comment fonctionne le RIGHT OUTER JOIN
.
Chaque ligne de la table T1
est comparée aux lignes de la table T2
:
- Si une paire de lignes satisfait au prédicat de jointure, les valeurs des colonnes des deux lignes sont combinées pour former une ligne de résultat qui est ensuite incluse dans l’ensemble de résultats.
- Dans le cas où une ligne de la table
T2
ne correspond à aucune ligne de la tableT1
, les valeurs des colonnes de la ligne de la tableT2
sont combinées avec une valeur NULL pour chaque colonne de la ligne de la tableT1
pour faire la ligne de résultat qui est alors également incluse dans l’ensemble de résultats.
En d’autres termes, une jointure externe droite renvoie toutes les lignes de la table de droite et également les lignes correspondantes de la table de gauche.
Oracle RIGHT OUTER JOIN exemples
Nous utiliserons les tables orders
et employees
de la base de données exemple pour la démonstration:
Dans ce schéma, un commercial est en charge d’une ou plusieurs commandes de vente. Cependant, certaines commandes commerciales peuvent n’être en charge d’aucun vendeur.
L’exemple suivant récupère tous les vendeurs et leurs commandes commerciales s’il y en a :
Le résultat comprend tous les employés dont le titre de poste est Sales Representative
et leurs commandes.
Si un vendeur n’est en charge d’aucune commande de vente telle que Alice Wells
, Charlotte Webb
, les colonnes order_id
et status
sont remplies de valeurs NULL.
Oracle RIGHT OUTER JOIN with USING clause
Similaire à d’autres jointures telles que INNER JOIN
, LEFT JOIN
, vous pouvez utiliser la clause USING
pour spécifier la colonne à tester pour l’égalité lors de la jointure de tables.
L’exemple suivant illustre la syntaxe de la RIGHT OUTER JOIN
avec la clause USING
:
Dans cette requête, les colonnes énumérées dans la clause USING
doivent être présentées dans les deux tables T1
et T2
.
L’instruction suivante est équivalente à celle ci-dessus:
L’instruction suivante démontre comment utiliser le RIGHT OUTER JOIN
avec la clause USING
:
Dans cet exemple, tous les clients sont inclus dans l’ensemble de résultats. Si un client n’a pas de commande client, les colonnes order_id
et status
sont remplies avec des valeurs NULL.
Oracle RIGHT JOIN : condition dans la clause ON vs WHERE
L’instruction suivante obtient les données d’employé et de commande du vendeur id 57.
L’instruction suivante place la condition dans la clause WHERE
au lieu de la clause ON
:
La requête a retourné tous les employés mais seul l’employé id 57 avait les données de commande associées.
Notez que concernant le INNER JOIN
, la condition est placée dans la clause ON
a le même effet qu’elle est placée dans la clause WHERE
.
Dans ce tutoriel, vous avez appris à utiliser le RIGHT OUTER JOIN
dans Oracle pour interroger les données de plusieurs tables.
- Ce tutoriel vous a-t-il été utile ?
- OuiNon
.