Direkt zum Inhalt
Urkunden
FunktionenAusdrückeSchlüsselwörterAussagenKlauseln

MySQL OUTER JOIN Schlüsselwort

```html

Das Schlüsselwort OUTER JOIN wird in MySQL verwendet, um Datensätze aus zwei Tabellen abzurufen, einschließlich der Datensätze, die keine übereinstimmenden Werte in den Bezugstabellen haben. Sie stellt sicher, dass alle Datensätze aus einer Tabelle in die Ergebnisse aufgenommen werden, und wenn keine Übereinstimmungen gefunden werden, werden NULLs in die Spalten der jeweiligen Tabelle eingetragen.

Verwendung

OUTER JOIN wird verwendet, wenn du alle Zeilen aus einer oder beiden Tabellen einbeziehen willst, unabhängig davon, ob es in der anderen Tabelle eine Übereinstimmung gibt. Es gibt zwei Haupttypen: LEFT OUTER JOIN (oder einfach LEFT JOIN) und RIGHT OUTER JOIN (oder einfach RIGHT JOIN).

SELECT columns
FROM table1
LEFT|RIGHT OUTER JOIN table2
ON table1.common_column = table2.common_column;

In dieser Syntax bestimmt das Schlüsselwort LEFT|RIGHT OUTER JOIN, welche Zeilen der Tabelle vollständig in der Ergebnismenge erhalten bleiben.

Hinweis zu FULL OUTER JOIN

MySQL unterstützt FULL OUTER JOIN nicht direkt. Du kannst jedoch ähnliche Ergebnisse erzielen, indem du eine Kombination aus LEFT JOIN und RIGHT JOIN mit einem UNION verwendest.

SELECT columns
FROM table1
LEFT JOIN table2 ON table1.common_column = table2.common_column
UNION
SELECT columns
FROM table1
RIGHT JOIN table2 ON table1.common_column = table2.common_column;

Beispiele

1. Basic LEFT OUTER JOIN

SELECT customers.customer_id, orders.order_id
FROM customers
LEFT OUTER JOIN orders ON customers.customer_id = orders.customer_id;

Diese Abfrage ruft alle Kunden und ihre Bestellungen ab, falls vorhanden. Kunden ohne Bestellungen erscheinen weiterhin im Ergebnis mit NULL in den Bestellspalten.

2. RECHTE ÄUSSERE VERBINDUNG

SELECT products.product_id, orders.order_id
FROM products
RIGHT OUTER JOIN orders ON products.product_id = orders.product_id;

Hier werden alle Bestellungen aufgelistet, auch die, für die es keinen entsprechenden Produkteintrag gibt, indem du NULL für Produktdetails ausfüllst.

3. Kombinieren von LEFT JOIN mit WHERE-Klausel

SELECT employees.employee_id, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.department_id
WHERE departments.department_name IS NULL;

Diese Abfrage findet Mitarbeiter, die keiner Abteilung zugewiesen sind, indem sie alle Mitarbeiter auflistet und diejenigen mit NULL Abteilungsnamen filtert.

Tipps und bewährte Praktiken

  • Wähle die richtige Verbindungsart. Verwende LEFT JOIN, wenn du alle Datensätze aus der ersten Tabelle brauchst, und RIGHT JOIN, wenn du alle Datensätze aus der zweiten Tabelle brauchst.
  • Behalte die Leistung im Auge. OUTER JOIN Operationen können die Leistung beeinträchtigen; stelle sicher, dass Indizes für Join-Spalten verwendet werden. Die Analyse von Abfrageausführungsplänen kann helfen, die Leistung zu optimieren.
  • Achte auf NULLs. Überlege, wie deine Anwendung oder nachfolgende Abfragen mit NULL-Werten in der Ergebnismenge umgehen werden. Verwende Funktionen wie IFNULL() oder COALESCE(), um NULL durch Standardwerte zu ersetzen.
  • Verwende WO mit Vorsicht. Wenn du mit WHERE filterst, achte darauf, dass es nicht versehentlich die Wirkung von OUTER JOIN aufhebt.
```

SQL Upskilling für Einsteiger

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