Frage LINKE VERBINDUNG vs. LINKE OUTER-VERBINDUNG in SQL Server


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


1227
2018-01-02 08:30


Ursprung


Antworten:


Gemäß der Dokumentation: FROM (Transact-SQL):

<join_type> ::= 
    [ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
    JOIN

Das Schlüsselwort OUTER ist als optional gekennzeichnet (in eckigen Klammern), und das bedeutet in diesem Fall, dass es egal ist, ob Sie es angeben oder nicht. Beachten Sie, dass, während die anderen Elemente der Join-Klausel ebenfalls als optional markiert sind, leaving Sie out wird natürlich einen Unterschied machen.

Zum Beispiel der gesamte Typ-Teil der JOIN Klausel ist optional, in diesem Fall ist der Standardwert INNER wenn Sie nur angeben JOIN. Mit anderen Worten, das ist legal:

SELECT *
FROM A JOIN B ON A.X = B.Y

Hier ist eine Liste von äquivalenten Syntaxen:

A LEFT JOIN B            A LEFT OUTER JOIN B
A RIGHT JOIN B           A RIGHT OUTER JOIN B
A FULL JOIN B            A FULL OUTER JOIN B
A INNER JOIN B           A JOIN B

Sieh dir auch die Antwort an, die ich zu dieser anderen Frage hinterlassen habe: SQL link Join vs mehrere Tabellen in FROM-Zeile?.

enter image description here


1796
2018-01-02 08:51



Zur Beantwortung Ihrer Frage Es gibt keinen Unterschied zwischen LEFT JOIN   und LEFT OUTER JOIN, sie sind genau gleich das gesagt...

Auf der obersten Ebene gibt es hauptsächlich 3 Arten von Joins:

  1. INNERE
  2. ÄUSSERE
  3. KREUZ

  1. INNERES VERBINDEN - ruft Daten ab, wenn sie in beiden Tabellen vorhanden sind.

  2. ÄUSSERER JOIN sind aus 3 Typen:

    1. LEFT OUTER JOIN - ruft Daten ab, wenn sie in der linken Tabelle vorhanden sind.
    2. RIGHT OUTER JOIN - ruft Daten ab, wenn sie in der rechten Tabelle vorhanden sind.
    3. FULL OUTER JOIN - ruft Daten ab, wenn sie in einer der beiden Tabellen vorhanden sind.
  3. KREUZVERBINDUNG, wie der Name schon sagt [n X m] das verbindet alles mit allem.
    Ähnlich wie in einem Szenario, in dem wir einfach die Tabellen für den Beitritt auflisten (in der FROM Klausel des SELECT Anweisung), mit Kommas, um sie zu trennen.


Punkte zu beachten:

  • Wenn Sie nur erwähnen JOIN dann ist es standardmäßig ein INNER JOIN.
  • Ein OUTER Beitritt muss sein LEFT | RIGHT | FULL Du kannst nicht einfach sagen OUTER JOIN.
  • Du kannst fallen lassen OUTER Stichwort und sag einfach LEFT JOIN oder RIGHT JOIN oder FULL JOIN.

Für diejenigen, die diese besser visualisieren möchten, gehen Sie bitte auf diesen Link: Eine visuelle Erklärung von SQL-Joins


621
2017-12-09 18:05



Was ist der Unterschied zwischen linker und linker äußerer Verbindung?

Nichts. LEFT JOIN und LEFT OUTER JOIN sind gleichwertig.


274
2018-01-02 08:31



Lesen Sie mehr unter Visuelle Darstellung von SQL-Joins

Visual Representation of SQL Joins


117
2017-10-28 23:02



Ich bin ein PostgreSQL-DBA, soweit ich den Unterschied zwischen äußeren oder nicht-äußeren Joins verstehen konnte, ist der Unterschied ein Thema, das im Internet viel diskutiert wird. Bis heute habe ich nie einen Unterschied zwischen diesen beiden gesehen; Also ging ich weiter und ich versuche den Unterschied zwischen diesen zu finden. Am Ende las ich die ganze Dokumentation darüber und ich fand die Antwort dafür,

Wenn Sie sich also die Dokumentation ansehen (zumindest in PostgreSQL), können Sie diesen Satz finden:

"Die Wörter INNER und OUTER sind in allen Formen optional. INNER ist der Standard; LEFT, RIGHT, und FULL implizieren eine äußere Verbindung. " 

In anderen Worten,

LEFT JOIN und LEFT OUTER JOIN SIND GLEICH

RIGHT JOIN und RIGHT OUTER JOIN SIND GLEICH

Ich hoffe, es kann ein Beitrag für diejenigen sein, die immer noch versuchen, die Antwort zu finden.


52
2017-08-30 02:33



Nichts zu sagen in Worten neben diesem:enter image description here


44
2017-08-12 22:05



Left Join und Left Outer Join sind eins und die gleich. Ersteres ist die Abkürzung für Letzteres. Das gleiche kann über die gesagt werden Right Join und Right Outer Join Beziehung. Die Demonstration wird die Gleichheit veranschaulichen. Arbeitsbeispiele jeder Abfrage wurden über bereitgestellt SQL-Geige. Dieses Tool ermöglicht eine manuelle Bearbeitung der Abfrage.

Gegeben

enter image description here

Linke Verbindung und Linke äußere Verbindung

enter image description here

Ergebnisse

enter image description here


Rechts beitreten und Rechts außen verbinden

enter image description here

Ergebnisse

enter image description here


37
2018-05-22 17:09



Ich finde es leichter, an Joins in der folgenden Reihenfolge zu denken:

  • CROSS JOIN - ein kartesisches Produkt beider Tabellen. Alle Verknüpfungen beginnen hier
  • INNER JOIN - ein CROSS JOIN mit einem Filter hinzugefügt.
  • OUTER JOIN - ein INNERER JOIN mit fehlenden Elementen (entweder von LINKS oder RECHTS) später hinzugefügt.

Bis ich dieses (relativ) einfache Modell herausfand, waren JOINS immer etwas mehr schwarze Kunst. Jetzt machen sie vollkommen Sinn.

Hoffe, das hilft mehr als es verwirrt.


34
2017-12-29 21:01