Maison >base de données >tutoriel mysql >Qu'est-ce que l'opérateur Oracle ( ) et comment fonctionne-t-il dans les OUTER JOIN ?

Qu'est-ce que l'opérateur Oracle ( ) et comment fonctionne-t-il dans les OUTER JOIN ?

DDD
DDDoriginal
2025-01-20 02:56:09358parcourir

What is the Oracle ( ) Operator and How Does it Work in OUTER JOINs?

Comprendre l'opérateur Oracle ( ) dans les jointures externes

L'opérateur Oracle ( ), utilisé dans l'ancienne syntaxe SQL pour les jointures externes, est souvent source de confusion. Il s'agit d'un opérateur non standard, contrairement à la syntaxe JOIN standard ANSI. Examinons sa fonction dans les requêtes de jointure externe.

Les jointures externes expliquées

Une jointure externe connecte les lignes de deux tables (« a » et « b » dans l'exemple ci-dessous) en fonction d'une condition de jointure (par exemple, a.id=b.id). Contrairement à un INNER JOIN, une jointure externe inclut des lignes même s'il n'y a aucune correspondance dans l'autre table.

Joindre l'extérieur droit avec ( )

L'opérateur ( ) dans l'instruction Oracle suivante désigne une jointure externe droite :

<code class="language-sql">select ...
from a, b
where a.id = b.id(+)</code>

Cette requête renvoie toutes les lignes de la table 'b'. Si une ligne dans « b » a un id correspondant dans « a », la ligne correspondante de « a » est incluse. Sinon, les colonnes de « a » auront NULL valeurs dans le jeu de résultats.

Alternatives modernes

Oracle conseille fortement d'utiliser la syntaxe JOIN de la norme ANSI-92, qui est plus claire et plus robuste :

ANSI-92 (recommandé) :

<code class="language-sql">SELECT ...
FROM a
RIGHT JOIN b ON b.id = a.id</code>

Syntaxe d'Oracle ( ) (obsolète) :

<code class="language-sql">select ...
from a,b
where a.id=b.id(+)</code>

Considérations importantes

L'opérateur ( ) a des limitations et des bizarreries non présentes dans la syntaxe standard JOIN. Pour une meilleure lisibilité et maintenabilité et pour éviter tout comportement inattendu, donnez toujours la priorité à la syntaxe ANSI-92 JOIN lors de l'écriture de requêtes de jointure externe dans Oracle.

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