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 table T1, les valeurs des colonnes de la ligne de la table T2 sont combinées avec une valeur NULL pour chaque colonne de la ligne de la table T1 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

.

admin

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

lg