logo

SQL Left Outer Join vs. Left Join

In SQL werden sowohl LEFT JOIN als auch LEFT OUTER JOIN verwendet, um Daten aus zwei oder mehr Tabellen basierend auf einer zugehörigen Spalte zu kombinieren. Dabei handelt es sich jedoch im Wesentlichen um denselben Vorgang, und es gibt keinen praktischen Unterschied zwischen ihnen. Das Schlüsselwort OUTER ist in den meisten Datenbanksystemen optional, einschließlich beliebter Systeme wie MySQL, PostgreSQL und SQL Server.

Links beitreten

Left Join oder Left Outer Join



Links beitreten

A SQL Operation, die zwei Tabellen kombiniert und alle Zeilen der linken Tabelle sowie übereinstimmende Zeilen der rechten Tabelle anzeigt. Wenn in der rechten Tabelle keine Übereinstimmung vorhanden ist, wird dies angezeigt NULL Werte.

Syntax

Wählen Sie * aus Tabelle 1 aus

LEFT JOIN Table2 ON Table1.columnName = Table2.columnName;



Linke äußere Verbindung

Eine weitere SQL-Operation, die vom Konzept her mit LEFT JOIN identisch ist. Außerdem werden Tabellen kombiniert, wobei alle Zeilen der linken Tabelle und die entsprechenden Zeilen der rechten Tabelle angezeigt werden. Wenn es in der rechten Tabelle keine Übereinstimmung gibt, werden NULL-Werte angezeigt.

Syntax

Wählen Sie * aus Tabelle 1 aus

LEFT OUTER JOIN Table2 ON Table1.columnName = Table2.columnName;



LEFT JOIN und LEFT OUTER JOIN sind in SQL im Wesentlichen dasselbe. Beide kombinieren Daten aus zwei Tabellen und zeigen alle Zeilen aus der linken Tabelle und übereinstimmende Zeilen aus der rechten Tabelle an. Wenn es in der rechten Tabelle keine Übereinstimmung gibt, werden NULL-Werte angezeigt. Der einzige Unterschied besteht in der Terminologie: LEFT JOIN wird in einigen Datenbanken wie verwendet MySQL , während LEFT OUTER JOIN in anderen wie SQL Server verwendet wird. Genauer gesagt wird System.out.print() in Java verwendet, gleichzeitig wird print in Python verwendet, aber beide geben die gleiche Ausgabe wieder. Es kommt also nur darauf an, welchen Begriff Ihr Datenbanksystem bevorzugt, aber das Ergebnis ist dasselbe.

Bevor wir uns mit den Beispielen befassen, erstellen wir die Daten, die für die Durchführung des Left Outer Join und des Left Join erforderlich sind.

Schritt 1: Erstellen Sie eine Datenbank

create database geeksforgeeks; use geeksforgeeks;>

Schritt 2: Erstellen Sie eine Tabelle mit dem Namen athelete

create table atheletes(Id int, Name varchar(20),  AtheleteNO int, primary key(Id) );>

Schritt 3: Geben Sie Werte in die Tabelle ein

INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (1, 'abisheik', 27); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (2, 'Niyas', 27); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (3, 'Joseph', 29); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (4, 'Juan', 24);>

Schritt 4: Erstellen Sie eine Tabelle mit dem Namen „Punkte“.

CREATE TABLE Points(ID INT, Score INT,AtheleteID INT,   PRIMARY KEY (ID) );>

Schritt 5: Geben Sie Werte in die Tabellenpunkte ein

INSERT INTO Points (ID, Score, AtheleteID) VALUES (1, 270, 1); INSERT INTO Points (ID, Score, AtheleteID) VALUES (2, 297, 2); INSERT INTO Points (ID, Score, AtheleteID) VALUES (3, 210, 3); INSERT INTO Points (ID, Score, AtheleteID) VALUES (4, 180, 4);>

Jetzt haben wir erfolgreich die Tabelle athelete und Points für den Join-Vorgang erstellt.

Beispiel:

Durch die Verwendung des Left Outer Join wird die Abfrage ausgeführt.

Abfrage

SELECT * FROM atheletes   LEFT OUTER JOIN Points ON  atheletes.ID = Points.AtheleteID;>

Ausgabe

Ausweis

Name

Sportler Nr

AUSWEIS

Punktzahl

Athleten-ID

1

Abisheik

27

1

270

1

2

Niyas

27

2

297

2

3

Joseph

29

3

210

3

4

Juan

24

4

180

4

Beispiel:

Durch die Verwendung des Left Join wird die Abfrage ausgeführt.

Abfrage

SELECT * FROM atheletes   LEFT JOIN Points ON  atheletes.ID = Points.AtheleteID;>

Ausgabe

Ausweis

Name

Sportler Nr

AUSWEIS

Punktzahl

Athleten-ID

1

Abisheik

27

1

270

1

2

Niyas

27

2

297

2

3

Joseph

29

3

210

3

4

Juan

24

4

180

4

Abschluss

In SQL sind LEFT JOIN und LEFT OUTER JOIN im Wesentlichen dieselbe Operation und unterscheiden sich nur in der Terminologie. Beide Operationen kombinieren Daten aus zwei Tabellen und zeigen alle Zeilen aus der linken Tabelle und übereinstimmende Zeilen aus der rechten Tabelle an, während NULL-Werte für nicht übereinstimmende Zeilen angezeigt werden. Unabhängig davon, welchen Begriff Sie in Ihrem Datenbanksystem verwenden, bleibt das Ergebnis identisch.

Registerübertragungslogik

FAQs zu Left Join vs. Left Outer Join

F.1: Gibt es einen Leistungsunterschied zwischen LEFT JOIN und LEFT OUTER JOIN?

Antwort:

Nein, es gibt keinen Leistungsunterschied. Diese Begriffe sind austauschbar und werden vom Datenbankoptimierer auf die gleiche Weise behandelt.

F.2: Kann ich LEFT JOIN oder LEFT OUTER JOIN mit mehr als zwei Tabellen verwenden?

Antwort:

Ja, Sie können diese Join-Vorgänge mit mehreren Tabellen verwenden, indem Sie die Syntax erweitern und die Join-Bedingungen für jede Tabelle angeben.

F.3: Unterstützen alle Datenbanksysteme sowohl LEFT JOIN als auch LEFT OUTER JOIN?

Antwort:

Die am weitesten verbreiteten Datenbanksysteme, einschließlich MySQL, PostgreSQL und SQL Server, unterstützen sowohl LEFT JOIN als auch LEFT OUTER JOIN. Es ist jedoch wichtig, die Kompatibilität Ihrer spezifischen Datenbankdokumentation zu überprüfen.

F.4: Was passiert, wenn ich LEFT JOIN oder LEFT OUTER JOIN verwende, ohne eine Join-Bedingung anzugeben?

Antwort:

Die Verwendung dieser Join-Operationen ohne Join-Bedingung führt zu einem kartesischen Produkt, bei dem jede Zeile aus der linken Tabelle mit jeder Zeile aus der rechten Tabelle kombiniert wird, was möglicherweise zu einer großen und ineffizienten Ergebnismenge führt.

F.5: Gibt es andere Arten von SQL-Joins?

Antwort:

Ja, SQL unterstützt verschiedene Arten von Joins, einschließlich INNER JOIN, RIGHT JOIN, FULL OUTER JOIN und CROSS JOIN, die jeweils unterschiedliche Zwecke beim Kombinieren von Daten aus mehreren Tabellen erfüllen.