Direkt zum Inhalt
Urkunden
FunktionenAusdrückeSchlüsselwörterAussagenKlauseln

MySQL LEFT JOIN-Klausel

Die Klausel `LEFT JOIN` in MySQL wird verwendet, um alle Datensätze aus der linken Tabelle und die übereinstimmenden Datensätze aus der rechten Tabelle abzurufen. Wenn keine Übereinstimmung gefunden wird, ist das Ergebnis `NULL` aus der richtigen Tabelle.

Verwendung

Die Klausel `LEFT JOIN` wird in der Regel verwendet, wenn du alle Einträge aus der linken Tabelle und nur die Einträge aus der rechten Tabelle, die übereinstimmende Werte haben, einbeziehen willst. Sie ist besonders nützlich, um nicht übereinstimmende Datensätze in der richtigen Tabelle zu identifizieren.

SELECT columns
FROM left_table
LEFT JOIN right_table ON left_table.common_column = right_table.common_column;

In dieser Syntax gibt `LEFT JOIN` an, dass alle Zeilen aus `left_table` zurückgegeben werden, mit passenden Zeilen aus `right_table` und `NULL`, wenn es keine Übereinstimmung gibt. Das Vorhandensein von `NULL` bedeutet, dass die entsprechende Zeile in der rechten Tabelle nicht existiert.

Beispiele

1. Basic LEFT JOIN

SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;

In diesem Beispiel werden alle Mitarbeiter und die dazugehörigen Abteilungsnamen abgerufen. Wenn einem Arbeitnehmer keine Abteilung zugewiesen ist, lautet der Abteilungsname "NULL", was bedeutet, dass es keinen passenden Datensatz in der Tabelle "Abteilungen" gibt.

2. LEFT JOIN mit WHERE-Klausel

SELECT customers.customer_id, orders.order_id
FROM customers
LEFT JOIN orders ON customers.customer_id = orders.customer_id
WHERE orders.order_id IS NULL;

Hier sucht die Abfrage alle Kunden, die keine Bestellung aufgegeben haben, indem sie nach "NULL"-Werten im Feld "order_id" sucht, die auf nicht übereinstimmende Datensätze hinweisen.

3. Verkettung mehrerer LEFT JOINs

SELECT students.name, courses.course_name, instructors.instructor_name
FROM students
LEFT JOIN enrollments ON students.student_id = enrollments.student_id
LEFT JOIN courses ON enrollments.course_id = courses.course_id
LEFT JOIN instructors ON courses.instructor_id = instructors.instructor_id;

Dieses Beispiel zeigt, wie du mehrere `LEFT JOINs` verketten kannst, um eine vollständige Übersicht über Schüler, Kurse und Lehrkräfte zu erhalten, auch wenn einige Schüler in keinem Kurs eingeschrieben sind.

Tipps und bewährte Praktiken

  • Gib immer die Verknüpfungsbedingung an. Definiere die zu verbindenden Spalten klar, um kartesische Produkte zu vermeiden.
  • Verwende LEFT JOIN, wenn nötig. Entscheide dich nur dann für `LEFT JOIN`, wenn du alle Datensätze aus der linken Tabelle benötigst, auch wenn es keine Übereinstimmungen in der rechten Tabelle gibt.
  • Prüfe auf NULLs. Verwende Bedingungen wie `IS NULL` oder `IS NOT NULL`, um nicht übereinstimmende Datensätze zu identifizieren. NULL"-Werte zeigen an, dass eine Zeile in der rechten Tabelle nicht mit einer Zeile in der linken Tabelle übereinstimmt.
  • Optimiere mit Indizes. Stelle sicher, dass Join-Spalten indiziert sind, um die Leistung zu verbessern. Indizes helfen dabei, Zeilen schnell zu finden und die Ausführungszeit von Abfragen deutlich zu reduzieren.
  • Sei vorsichtig mit großen Datensätzen. LEFT JOINs auf großen Tabellen können ressourcenintensiv sein; optimiere Abfragen, um große Daten effizient zu verarbeiten.
  • Erwäge, INNER JOIN zu verwenden, wenn es angebracht ist. Wenn alle gewünschten Ergebnisse in beiden Tabellen übereinstimmen sollen, kann ein `INNER JOIN` effizienter und übersichtlicher sein.

SQL Upskilling für Einsteiger

Erwerbe die SQL-Kenntnisse, um mit deinen Daten zu interagieren und sie abzufragen.
Kostenloses Lernen beginnen