Maison >base de données >tutoriel mysql >Comment l'opérateur ' ' d'Oracle et la clause WHERE créent-ils des jointures externes ?

Comment l'opérateur ' ' d'Oracle et la clause WHERE créent-ils des jointures externes ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-06 19:14:45959parcourir

How Do Oracle's

Jointures externes dans les clauses Oracle WHERE : l'opérateur " "

Dans les bases de données Oracle, l'opérateur " " peut être utilisé dans une clause WHERE pour spécifier une jointure externe entre deux tables. Les jointures externes permettent de récupérer les enregistrements qui correspondent dans les deux tables, ainsi que ceux qui existent dans une seule des tables.

Syntaxe

La syntaxe d'utilisation du L'opérateur " " dans une clause WHERE est tel que suit :

WHERE Table1.Column = Table2.Column(+)

Fonctionnalité

Lorsque l'opérateur " " apparaît sur le côté gauche du signe "=", il indique un LEFT OUTER JOIN. Cela signifie que tous les enregistrements du tableau 1 seront renvoyés, qu'ils aient ou non des enregistrements correspondants dans le tableau 2. Tous les enregistrements sans correspondance dans le tableau 2 seront renvoyés avec des valeurs nulles pour les colonnes jointes.

À l'inverse, lorsque l'opérateur " " apparaît à droite du signe "=", il indique une RIGHT OUTER JOIN. Dans ce cas, tous les enregistrements du tableau 2 seront renvoyés, même s'ils n'ont pas d'enregistrements correspondants dans le tableau 1. Les enregistrements correspondants de la table 1 seront inclus dans les résultats, tandis que les enregistrements sans correspondance auront des valeurs nulles.

Exemple

Considérez la requête suivante :

SELECT
    Table1.Category1,
    Table1.Category2,
    count(*) as Total,
    count(Tab2.Stat) AS Stat
FROM Table1, Table2
WHERE (Table1.PrimaryKey = Table2.ForeignKey(+))
GROUP BY Table1.Category1, Table1.Category2

Cette requête effectue un LEFT OUTER JOIN entre Table1 et Table2 en fonction des colonnes PrimaryKey et ForeignKey. Tous les enregistrements du tableau 1 seront inclus dans les résultats, même s'ils n'ont pas d'enregistrement correspondant dans le tableau 2. Pour les enregistrements sans correspondance dans le tableau 2, la colonne Stat sera nulle.

Recommandation

Bien que l'opérateur " " puisse être utilisé pour créer des jointures externes dans Oracle, il est généralement considérée comme obsolète et moins lisible que la syntaxe de jointure moderne. Il est recommandé d'utiliser LEFT JOIN ou RIGHT JOIN à la place, car ils fournissent une sémantique de jointure plus explicite et intuitive.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn