Den ( )-Operator von Oracle in Outer Joins verstehen
Oracles ( )-Operator, der in der älteren SQL-Syntax für Outer-Joins verwendet wird, sorgt oft für Verwirrung. Im Gegensatz zur ANSI-Standard-JOIN
-Syntax handelt es sich um einen nicht standardmäßigen Operator. Lassen Sie uns seine Funktion innerhalb von Outer-Join-Abfragen untersuchen.
Äußere Verknüpfungen erklärt
Ein äußerer Join verbindet Zeilen aus zwei Tabellen ('a' und 'b' im Beispiel unten) basierend auf einer Join-Bedingung (z. B. a.id=b.id
). Im Gegensatz zu einem INNER JOIN
schließt ein äußerer Join Zeilen ein, auch wenn es in der anderen Tabelle keine Übereinstimmung gibt.
Right Outer Join mit ( )
Der ( )
-Operator in der folgenden Oracle-Anweisung bezeichnet einen rechten äußeren Join:
<code class="language-sql">select ... from a, b where a.id = b.id(+)</code>
Diese Abfrage gibt alle Zeilen aus Tabelle „b“ zurück. Wenn eine Zeile in „b“ ein passendes id
in „a“ hat, wird die entsprechende Zeile aus „a“ einbezogen. Wenn nicht, haben die Spalten von „a“ NULL
Werte im Ergebnissatz.
Moderne Alternativen
Oracle empfiehlt dringend die Verwendung der ANSI-92-Standardsyntax JOIN
, die klarer und robuster ist:
ANSI-92 (empfohlen):
<code class="language-sql">SELECT ... FROM a RIGHT JOIN b ON b.id = a.id</code>
Syntax von Oracle ( ) (veraltet):
<code class="language-sql">select ... from a,b where a.id=b.id(+)</code>
Wichtige Überlegungen
Der ( )
-Operator weist Einschränkungen und Besonderheiten auf, die in der Standard-JOIN
-Syntax nicht vorhanden sind. Um die Lesbarkeit und Wartbarkeit zu verbessern und unerwartetes Verhalten zu vermeiden, priorisieren Sie beim Schreiben von Outer-Join-Abfragen in Oracle immer die ANSI-92-JOIN
-Syntax.
Das obige ist der detaillierte Inhalt vonWas ist der Oracle()-Operator und wie funktioniert er in OUTER JOINs?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!