2063 Stimmen

LEFT JOIN vs. LEFT OUTER JOIN in SQL Server

Was ist der Unterschied zwischen LEFT JOIN y LEFT OUTER JOIN ?

342 Stimmen

Keine! Die OUTER Schlüsselwort ist optional.

30 Stimmen

Venn-Diagramme sind für die Beantwortung dieser Frage nicht geeignet. Die Antwort auf diese Frage lautet Keine . Siehe den ersten Kommentar.

7 Stimmen

Venn-Diagramme veranschaulichen die Differenz der Ausgangszeilen para Sonderfälle de innere vs. äußere Verknüpfung . Wenn keine Nullen oder doppelten Zeilen eingegeben werden (so können wir eine Tabelle als eine Menge von zeilenbewerteten Werten betrachten und normale mathematische Gleichheit verwenden) dann enthalten die linken und rechten Kreise die Ausgabetabellen/-mengen der linken und rechten Verknüpfung . Wenn jedoch Nullen oder doppelte Zeilen eingegeben werden, ist es so schwierig zu erklären, woraus die Kreise bestehen und wie sich diese Kreise zu den Ein- und Ausgabetabellen/-taschen verhalten, dass Venn-Diagramme nicht hilfreich sind. Siehe meine Kommentare zu anderen Missbräuchen des Venn-Diagramms hier.

20voto

Unsliced Punkte 10135

Syntaktischer Zucker, der es dem Gelegenheitsleser deutlicher macht, dass es sich nicht um eine innere Verknüpfung handelt.

2 Stimmen

Also... was ist dann ein FULL OUTER JOIN?

6 Stimmen

TabelleA FULL OUTER JOIN TabelleB ergibt drei Arten von Datensätzen: alle Datensätze in TabelleA ohne passenden Datensatz in TabelleB, alle Datensätze in TabelleB ohne passenden Datensatz in TabelleA und alle Datensätze in TabelleA mit einem passenden Datensatz in TabelleB.

18voto

san Punkte 1335

Nur im Zusammenhang mit dieser Frage möchte ich auch die 2 "APPLY"-Operatoren nennen:

JOINS :

  1. INNER JOIN \= JOIN

  2. OUTER JOIN

    • LINKE ÄUSSERE VERKNÜPFUNG = LINKE VERKNÜPFUNG

    • RECHTE ÄUSSERE VERKNÜPFUNG = RECHTE VERKNÜPFUNG

    • VOLLSTÄNDIGE ÄUSSERE VERKNÜPFUNG = VOLLSTÄNDIGE VERKNÜPFUNG

  3. CROSS JOIN

SELF-JOIN : Dies ist eigentlich keine eigene Art der Verknüpfung. Es handelt sich im Grunde um eine Verknüpfung einer Tabelle mit sich selbst unter Verwendung einer der oben genannten Verknüpfungen. Aber ich denke, es ist es wert, im Zusammenhang mit JOIN-Diskussionen erwähnt zu werden, da Sie diesen Begriff von vielen in der SQL-Entwicklergemeinschaft hören werden.

APPLY :

  1. CROSS APPLY -- Ähnlich wie INNER JOIN (hat aber den zusätzlichen Vorteil, dass in der rechten Tabelle für jede Zeile der linken Tabelle etwas berechnet wird und nur die übereinstimmenden Zeilen zurückgegeben werden)
  2. OUTER APPLY -- Ähnlich wie LEFT OUTER JOIN (hat aber den zusätzlichen Vorteil, dass für jede Zeile der linken Tabelle etwas in der rechten Tabelle berechnet werden kann und alle Zeilen der linken Tabelle unabhängig von einer Übereinstimmung in der rechten Tabelle zurückgegeben werden)

https://www.mssqltips.com/sqlservertip/1958/sql-server-cross-apply-and-outer-apply/

https://sqlhints.com/2016/10/23/outer-apply-in-sql-server/

Beispiel aus dem wirklichen Leben, wann man OUTER / CROSS APPLY in SQL verwendet

Ich finde den APPLY-Operator sehr vorteilhaft, da er eine bessere Leistung erbringt, als die gleiche Berechnung in einer Unterabfrage durchzuführen. Sie sind auch ein Ersatz für viele analytische Funktionen in älteren Versionen von SQL Server. Deshalb glaube ich, dass ein SQL-Entwickler, nachdem er mit JOINS vertraut ist, als nächstes die APPLY-Operatoren lernen sollte.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X