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