Heim >Datenbank >MySQL-Tutorial >Wie erstellt der ( )-Operator von Oracle äußere Verknüpfungen und warum sollten Sie dies vermeiden?
Oracles ( )-Operator: Ein Legacy-Ansatz für Outer Joins
Älterer SQL-Code verwendet oft den ( )-Operator von Oracle, eine Syntax, die vielen Entwicklern unbekannt ist. Dieser Operator war für die Erstellung von OUTER JOINs vor dem ANSI-89-Standard von entscheidender Bedeutung, da es keine explizite OUTER JOIN-Unterstützung gab.
Der ( )-Operator erstellt im Wesentlichen einen LEFT OUTER JOIN. Es ermöglicht die Verknüpfung von Zeilen aus einer Tabelle (z. B. Tabelle „b“) mit Zeilen aus einer anderen Tabelle („a“) basierend auf einem angegebenen ID-Feld. Wenn eine Zeile in „b“ keine passende Zeile in „a“ hat, enthalten die entsprechenden Spalten von „b“ NULL-Werte im Ergebnissatz.
Das Entfernen von () würde den Join in einen INNER JOIN ändern und nur Zeilen mit übereinstimmenden IDs in beiden Tabellen zurückgeben. Daher ist () von entscheidender Bedeutung, wenn Sie alle Zeilen einer Tabelle benötigen und potenzielle NULL-Werte für nicht übereinstimmende Zeilen der anderen Tabelle akzeptieren.
Trotz seiner Funktionalität rät Oracle dringend von der Verwendung des ( )-Operators ab. Es ist nicht standardisiert (nicht ANSI-kompatibel) und behindert die Portabilität auf andere Datenbanksysteme. Darüber hinaus unterliegt es einzigartigen Regeln und Einschränkungen, die in OUTER JOINs, die mit der standardmäßigen FROM
-Klauselsyntax erstellt wurden, nicht zu finden sind.
Für eine bessere Kompatibilität, Leistung und Einhaltung moderner Best Practices empfiehlt Oracle diese standardmäßige OUTER JOIN-Syntax:
<code class="language-sql">SELECT ... FROM a LEFT JOIN b ON b.id = a.id</code>
Dadurch wird das gleiche Ergebnis wie mit dem ( )-Operator erzielt und gleichzeitig die Vorteile der ANSI-92-Syntax und der optimierten Abfrageausführungspläne von Oracle genutzt.
Das obige ist der detaillierte Inhalt vonWie erstellt der ( )-Operator von Oracle äußere Verknüpfungen und warum sollten Sie dies vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!