SQL ist ein leistungsstarkes Werkzeug für die Interaktion mit relationalen Datenbanken. Wenn Sie mit Tabellen in SQL arbeiten, müssen Sie häufig Daten aus mehreren Tabellen kombinieren. Hier helfen JOIN-Operationen. LEFT JOIN und LEFT OUTER JOIN sind zwei häufig verwendete Befehle. Obwohl sie unterschiedlich erscheinen, erfüllen sie tatsächlich die gleiche Funktion. Lassen Sie uns die Funktionsweise und den Unterschied zwischen SQL LEFT JOIN und LEFT OUTER JOIN verstehen.
Was ist ein LEFT JOIN?
Ein LEFT JOIN ist eine Artwork SQL JOIN-Vorgang, der Zeilen aus zwei Tabellen basierend auf einer zugehörigen Spalte kombiniert. Das Hauptmerkmal eines LEFT JOIN besteht darin, dass er alle Zeilen aus der linken Tabelle und die übereinstimmenden Zeilen aus der rechten Tabelle zurückgibt. Wenn es keine Übereinstimmung gibt, enthält das Ergebnis NULL-Werte für Spalten aus der rechten Tabelle.
Syntax
SELECT columns
FROM left_table
LEFT JOIN right_table
ON left_table.column_name = right_table.column_name;
In der obigen Syntax:
- left_table: Die primäre Tabelle, aus der alle Zeilen zurückgegeben werden.
- right_table: Die sekundäre Tabelle, aus der übereinstimmende Zeilen zurückgegeben werden.
- Spaltenname: Die Spalte, die zum Verbinden der beiden Tabellen verwendet wird.
Beispiel für LEFT JOIN
SELECT workers.title, departments.department_name
FROM workers
LEFT JOIN departments
ON workers.department_id = departments.id;
Diese Abfrage ruft alle Mitarbeiter und ihre entsprechenden Abteilungsnamen ab. Wenn ein Mitarbeiter keiner Abteilung zugeordnet ist, wird im Ergebnis NULL für den Abteilungsnamen angezeigt.
Lesen Sie auch: Joins in SQL – Innere, linke, rechte und vollständige Joins erklärt
Was ist ein LEFT OUTER JOIN?
Der LEFT OUTER JOIN funktioniert genau wie der LEFT JOIN. Es gibt alle Zeilen aus der linken Tabelle und die übereinstimmenden Zeilen aus der rechten Tabelle zurück. Wenn es keine Übereinstimmung gibt, wird NULL für Spalten aus der rechten Tabelle zurückgegeben. Der Begriff „OUTER“ ist optionally available und ändert nichts am Verhalten des JOIN. In einigen SQL-Dialekten wird es häufig aus Gründen der Klarheit verwendet.
Syntax
SELECT columns
FROM left_table
LEFT OUTER JOIN right_table
ON left_table.column_name = right_table.column_name;
Mit dem gleichen Beispiel wie oben könnten wir unsere Abfrage wie folgt umschreiben:
Wie Sie sehen, ist die Syntax identisch mit der des LEFT JOIN. Der einzige Unterschied besteht in der Einbeziehung des Wortes OUTER.
Beispiel für LEFT OUTER JOIN
SELECT workers.title, departments.department_name
FROM workers
LEFT OUTER JOIN departments
ON workers.department_id = departments.id;
Diese Abfrage ruft auch alle Mitarbeiter und ihre entsprechenden Abteilungsnamen ab, genau wie der LEFT JOIN. Wenn ein Mitarbeiter keiner Abteilung zugeordnet ist, wird im Ergebnis NULL für den Abteilungsnamen angezeigt.
Lesen Sie auch: SQL-Leitfaden von den Grundlagen bis zum Fortgeschrittenenniveau
SQL LEFT JOIN vs. LEFT OUTER JOIN
Während die Bedingungen LINKS BEITRETEN Und LINKER ÄUßERER JOIN unterschiedlich aussehen, sind sie in SQL funktional identisch. Der einzige Unterschied liegt in der Syntax:
- LINKS BEITRETEN: Kürzer und häufiger verwendet.
- LINKER ÄUßERER JOIN: Beinhaltet das optionale „ÄUSSERE“ Stichwort zur Verdeutlichung.
Beide Befehle liefern die gleichen Ergebnisse, sodass die Wahl zwischen ihnen eine Frage der persönlichen oder organisatorischen Präferenz ist.
Praxisbeispiele: LEFT JOIN und LEFT OUTER JOIN
Um eine Beispieldatenbank mit Mitarbeiter- und Abteilungstabellen zu erstellen und dann die LEFT JOIN- und RIGHT JOIN-Beispiele zu verwenden, können Sie die folgenden SQL-Befehle verwenden.
Schritt 1: Datenbank erstellen
Erstellen Sie zunächst die Datenbank, in der sich die Tabellen befinden sollen.
CREATE DATABASE company_db;
USE company_db;
Schritt 2: Tabellen erstellen
Jetzt erstellen wir die Mitarbeiter- und Abteilungstabellen.
-- Create the 'departments' desk
CREATE TABLE departments (
id INT PRIMARY KEY,
department_name VARCHAR(100) NOT NULL
);
-- Create the 'workers' desk
CREATE TABLE workers (
id INT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
department_id INT,
FOREIGN KEY (department_id) REFERENCES departments(id)
);
Schritt 3: Daten in Tabellen einfügen
Fügen Sie nun einige Beispieldaten in beide Tabellen ein:
-- Insert knowledge into 'departments' desk
INSERT INTO departments (id, department_name) VALUES
(1, 'HR'),
(2, 'IT'),
(3, 'Finance'),
(4, 'Advertising');
Ausgabe:
-- Insert knowledge into 'workers' desk
INSERT INTO workers (id, title, department_id) VALUES
(1, 'Alice', 2),
(2, 'Bob', 3),
(3, 'Charlie', NULL),
(4, 'David', 1);
Ausgabe:
Schritt 4: Führen Sie die Abfragen aus
Nachdem die Datenbank und die Tabellen nun erstellt und mit Daten gefüllt sind, können Sie die Abfragen LEFT JOIN und RIGHT JOIN ausführen.
LEFT JOIN-Abfrage
SELECT workers.title, departments.department_name
FROM workers
LEFT JOIN departments
ON workers.department_id = departments.id;
Ausgabe:
RIGHT JOIN-Abfrage
SELECT workers.title, departments.department_name
FROM workers
RIGHT JOIN departments
ON workers.department_id = departments.id;
Ausgabe:
Wann sollte LEFT JOIN oder LEFT OUTER JOIN verwendet werden?
- Datenabruf: Verwenden Sie einen LEFT JOIN, wenn Sie alle Datensätze aus der linken Tabelle benötigen, auch wenn es in der rechten Tabelle keine passenden Datensätze gibt.
- Berichterstattung: Superb zum Erstellen von Berichten, in denen Sie alle Elemente (z. B. Produkte, Mitarbeiter) unabhängig von ihren Beziehungen einbeziehen möchten.
- Datenanalyse: Hilft bei der Identifizierung von Lücken oder fehlenden Beziehungen zwischen Datensätzen.
Abschluss
Zusammenfassend lässt sich sagen, dass sowohl LEFT JOIN als auch LEFT OUTER JOIN in SQL synonyme Begriffe sind, die dem gleichen Zweck dienen, Daten aus zwei Tabellen zu kombinieren und gleichzeitig sicherzustellen, dass alle Datensätze aus der linken Tabelle in der Ergebnismenge enthalten sind. Die Entscheidung, einen Begriff dem anderen vorzuziehen, hängt oft von persönlichen oder organisatorischen Vorlieben ab. Wenn Sie dies verstehen, können Sie Ihre Effizienz beim Schreiben von SQL-Abfragen steigern und Verwirrung bei Datenbearbeitungsaufgaben vermeiden.
Stellen Sie damit Ihre SQL-Kenntnisse auf die Probe SQL-Projekte!
Häufig gestellte Fragen
A. Es gibt keinen Unterschied. LEFT JOIN und LEFT OUTER JOIN sind funktional identisch. Der Begriff „AUßEN“ ist optionally available und dient der Klarheit.
A. Verwenden Sie einen LEFT JOIN, wenn Sie alle Datensätze aus der linken Tabelle benötigen, auch wenn es in der rechten Tabelle keine passenden Datensätze gibt.
A. Ja, ein LEFT JOIN gibt NULL-Werte für Spalten aus der rechten Tabelle zurück, wenn es keine Übereinstimmung für eine Zeile in der linken Tabelle gibt.
A. Ja, Sie können LEFT JOIN und LEFT OUTER JOIN in SQL-Abfragen austauschbar verwenden. Beide führen zu den gleichen Ergebnissen.