Kurs
Die Feinheiten von SQL-Joins zu verstehen, ist ein Muss für alle, die mit relationalen Datenbanken arbeiten. In diesem Tutorial schauen wir uns LEFT JOIN und LEFT OUTER JOIN in SQL genau an.
Und wenn du SQL wirklich meistern und deine Abfragekompetenz auf das nächste Level bringen willst, melde dich zu einem Kurs wie Joining Data in SQL an, der dir die feinen, aber wichtigen Unterschiede bei Joins mit einer und zwei Tabellen praxisnah vermittelt.
SQL Upskilling für Einsteiger
LEFT JOIN vs. LEFT OUTER JOIN
Es gibt keinen Unterschied zwischen LEFT JOIN und LEFT OUTER JOIN. Beide sind austauschbar. Sie holen stets alle Zeilen aus der linken Tabelle und die passenden Zeilen aus der rechten Tabelle.
Schauen wir uns ein konkretes Beispiel an, um zu sehen, dass LEFT JOIN und LEFT OUTER JOIN dasselbe liefern. Dafür erstellen und verwenden wir zwei Beispieltables: Employees und Departments.
CREATE TABLE Departments (
DepartmentID INT PRIMARY KEY,
DepartmentName VARCHAR(50)
);
INSERT INTO Departments (DepartmentID, DepartmentName) VALUES
(1, 'HR'),
(2, 'IT'),
(3, 'Finance'),
(4, 'Marketing');
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
EmployeeName VARCHAR(50),
DepartmentID INT,
FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID)
);
INSERT INTO Employees (EmployeeID, EmployeeName, DepartmentID) VALUES
(1, 'Alice', 1),
(2, 'Bob', 2),
(3, 'Charlie', NULL),
(4, 'David', 3);
LEFT JOIN
Jetzt, da unsere beiden Tabellen bereit sind, probieren wir eine Abfrage mit LEFT JOIN.
SELECT Employees.EmployeeID, Employees.EmployeeName,
Departments.DepartmentName
FROM Employees
LEFT JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

Ausgabe der LEFT JOIN-Funktion. Bild: Autor
Unsere Abfrage mit LEFT JOIN gibt alle Zeilen aus der linken Tabelle Employees und die gematchten Zeilen aus der rechten Tabelle Departments zurück. Gibt es keinen Treffer, werden für die Spalten aus der rechten Tabelle Departments NULL- bzw. fehlende Werte geliefert.
LEFT OUTER JOIN
Probieren wir dasselbe nun mit LEFT OUTER JOIN:
SELECT Employees.EmployeeID, Employees.EmployeeName, Departments.DepartmentName
FROM Employees
LEFT OUTER JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

Ausgabe der LEFT OUTER JOIN-Funktion. Bild: Autor
Du siehst: Beide Abfragen erzeugen identische Ergebnisse.
Einsatzszenarien für LEFT JOIN bzw. LEFT OUTER JOIN
LEFT JOIN / LEFT OUTER JOIN ist in vielen Situationen extrem hilfreich. Hier ein paar Beispiele.
-
Unzugeordnete Datensätze finden: Mit
LEFT JOINoderLEFT OUTER JOINfindest du Datensätze in einer Tabelle, die keine passenden Einträge in der anderen haben. In der obigen Abfrage siehst du, dass unser Freund Charlie keinem Department zugeordnet ist. -
Datenqualität prüfen: Mit
LEFT JOINoderLEFT OUTER JOINstellst du Konsistenz über Tabellen hinweg sicher, indem du fehlende oder nicht passende Datensätze prüfst. Zum Beispiel könnten wir mit einerWHERE-Klausel die Ergebnismenge so filtern, dass nur Zeilen enthalten sind, bei denenDepartments.DepartmentIDNULList. -
Verwandte Daten zusammenführen: Nutze
LEFT JOINoderLEFT OUTER JOIN, um Daten aus verknüpften Tabellen zu einem einzigen, aussagekräftigen Report zu kombinieren. So aggregierst du Informationen aus mehreren Quellen und bekommst einen vollständigen Blick auf deine Daten.
Performance-Aspekte und fortgeschrittene Techniken
Auch wenn LEFT JOIN und LEFT OUTER JOIN einfach wirken, gibt es einige Performance-Aspekte und fortgeschrittene Techniken, die du im Blick behalten solltest.
Auswirkung auf die Abfrageperformance
LEFT JOIN/LEFT OUTER JOIN kann bei großen Datensätzen die Performance beeinflussen. Je mehr Zeilen deine Tabellen enthalten, desto länger dauert es, den Join zu verarbeiten und Ergebnisse zu liefern. Deshalb ist es wichtig, die Tabellengrößen zu berücksichtigen und Abfragen effizient zu optimieren.
Indexing-Strategien zur Beschleunigung
Indizes auf den Spalten, die in den Join-Bedingungen verwendet werden, können die Laufzeit deutlich verbessern. Ein Index hilft der Datenbank, Zeilen zwischen Tabellen schnell zu finden und abzugleichen. Wenn du beispielsweise häufig über DepartmentID joinst, beschleunigt ein Index auf der Spalte DepartmentID in beiden Tabellen den Prozess und macht deine Abfragen effizienter und reaktionsschneller.
Vergleich mit anderen Join-Typen
Zu wissen, wann du welchen Join verwendest (INNER JOIN, RIGHT JOIN, FULL OUTER JOIN), ist wichtig für die Optimierung. LEFT JOIN bzw. LEFT OUTER JOIN ist besonders nützlich, wenn du alle Datensätze aus der linken Tabelle benötigst. Brauchst du nicht alle Datensätze aus der linken Tabelle, wähle einen anderen Join.
Einsatz mit Unterabfragen
Unterabfragen, auch innere oder geschachtelte Abfragen genannt, helfen in komplexen Abrufszenarien. In Kombination mit LEFT JOIN oder LEFT OUTER JOIN kannst du damit Daten filtern und aggregieren, Tabellen bedingt verknüpfen und komplexe Abfragen in überschaubare Teile zerlegen.
Fazit
Es ist entscheidend, die Funktionen LEFT JOIN und LEFT OUTER JOIN in SQL zu verstehen, um Datenmanagement, Reporting und Analysen effektiv umzusetzen. Auch wenn beide identisch funktionieren, helfen dir passende Einsatzszenarien, Performance-Überlegungen und fortgeschrittene Techniken, sie gezielt einzusetzen. Für deinen weiteren Lernweg empfehlen wir:
- Introduction to SQL: Lerne, wie du mit SQL relationale Datenbanken erstellst und abfragst.
- SQL Fundamentals: Baue die grundlegenden SQL-Kompetenzen auf, um mit deinen Daten zu arbeiten und sie abzufragen.
- Learn SQL: Erwirb das Know-how einer gefragten Programmiersprache, mit der du Daten in relationalen Datenbanken verwaltest.
- Reporting in SQL: In diesem praxisnahen Kurs lernst du, eigene SQL-Reports und Dashboards zu erstellen und deine Kompetenzen in Exploration, Bereinigung und Validierung zu schärfen.
Erhalte eine Top-SQL-Zertifizierung
Erfahrener Profi in den Bereichen Datenwissenschaft, künstliche Intelligenz, Analytik und Datenstrategie.
Häufige Fragen zu SQL
Was ist der Unterschied zwischen LEFT JOIN und LEFT OUTER JOIN?
Es gibt keinen Unterschied; LEFT JOIN und LEFT OUTER JOIN erfüllen dieselbe Funktion und können austauschbar verwendet werden.
Wann sollte ich einen LEFT JOIN verwenden?
Verwende LEFT JOIN, wenn du alle Datensätze aus der linken Tabelle und die passenden Datensätze aus der rechten Tabelle benötigst. Nicht gematchte Datensätze der rechten Tabelle haben dann NULL-Werte.
Liefert LEFT JOIN mehr Zeilen als die linke Tabelle?
Nein. LEFT JOIN liefert alle Zeilen aus der linken Tabelle und die passenden Zeilen aus der rechten Tabelle. Die Zeilenanzahl der linken Tabelle wird dadurch nicht erhöht.
Wie gehe ich mit NULL-Werten in LEFT JOIN-Ergebnissen um?
Du kannst die Funktion COALESCE verwenden, um fehlende Werte im Ergebnis durch einen Standardwert zu ersetzen.
Wofür wird LEFT JOIN typischerweise verwendet?
Typische Einsätze sind das Identifizieren unzugeordneter Datensätze, Integritätsprüfungen und das Zusammenführen von Datensätzen in ETL-Prozessen.
