menu
languageDeutsch
save_alt Download

SQL JOIN Cheat Sheet

Schnellreferenz für alle SQL-JOIN-Typen mit visuellen Diagrammen und Codebeispielen

INNER JOIN AM HÄUFIGSTEN

Gibt nur Zeilen zurück, die in beiden Tabellen übereinstimmende Werte haben. Das ist der Standard-JOIN-Typ und wird am häufigsten verwendet.
SELECT orders.id, customers.name, orders.amount
FROM orders
INNER JOIN customers
  ON orders.customer_id = customers.id

Das Wichtigste:

  • Gibt nur übereinstimmende Datensätze aus beiden Tabellen zurück
  • Filtert nicht übereinstimmende Zeilen automatisch heraus
  • Der performanteste JOIN
  • Kann auch einfach als JOIN geschrieben werden (INNER ist implizit)

LEFT JOIN

Gibt alle Zeilen der linken Tabelle und die passenden Zeilen der rechten Tabelle zurück. Gibt es keine Übereinstimmung, werden für die Spalten der rechten Tabelle NULL-Werte zurückgegeben.
SELECT customers.name, orders.amount
FROM customers
LEFT JOIN orders
  ON customers.id = orders.customer_id

Das Wichtigste:

  • Behält alle Datensätze der linken (ersten) Tabelle
  • NULL-Werte für nicht übereinstimmende Spalten der rechten Tabelle
  • Auch bekannt als LEFT OUTER JOIN
  • Praktisch, um Datensätze ohne zugehörige Daten zu finden

RIGHT JOIN

Gibt alle Zeilen der rechten Tabelle und die passenden Zeilen der linken Tabelle zurück. Das Gegenstück zum LEFT JOIN.
SELECT orders.amount, customers.name
FROM orders
RIGHT JOIN customers
  ON orders.customer_id = customers.id

Das Wichtigste:

  • Behält alle Datensätze der rechten (zweiten) Tabelle
  • NULL-Werte für nicht übereinstimmende Spalten der linken Tabelle
  • Auch bekannt als RIGHT OUTER JOIN
  • Lässt sich immer als LEFT JOIN umschreiben

FULL OUTER JOIN

Gibt alle Zeilen beider Tabellen zurück, mit NULL-Werten dort, wo es in keiner Richtung eine Übereinstimmung gibt.
SELECT customers.name, orders.amount
FROM customers
FULL OUTER JOIN orders
  ON customers.id = orders.customer_id

Das Wichtigste:

  • Kombiniert die Ergebnisse von LEFT und RIGHT JOIN
  • Zeigt alle Datensätze beider Tabellen
  • In MySQL nicht unterstützt (stattdessen UNION verwenden)
  • Praktisch, um alle Beziehungen und Lücken zu finden

CROSS JOIN MIT VORSICHT VERWENDEN

Gibt das kartesische Produkt beider Tabellen zurück – jede Zeile der ersten Tabelle kombiniert mit jeder Zeile der zweiten Tabelle.
SELECT sizes.name, colors.name
FROM sizes
CROSS JOIN colors

-- Alternative syntax
SELECT sizes.name, colors.name
FROM sizes, colors

Das Wichtigste:

  • Keine ON-Klausel nötig (keine Join-Bedingung)
  • Anzahl der Ergebniszeilen = (Zeilen links × Zeilen rechts)
  • Kann schnell riesige Ergebnismengen erzeugen
  • Praktisch zum Erzeugen von Kombinationen oder Testdaten

LEFT ANTI JOIN

Gibt Zeilen der linken Tabelle zurück, zu denen es in der rechten Tabelle keine passenden Zeilen gibt. Praktisch, um Datensätze ohne Beziehungen zu finden.
SELECT customers.name
FROM customers
LEFT JOIN orders
  ON customers.id = orders.customer_id
WHERE orders.id IS NULL

-- Alternative: NOT EXISTS
SELECT customers.name
FROM customers
WHERE NOT EXISTS (
  SELECT 1 FROM orders
  WHERE orders.customer_id = customers.id
)

Das Wichtigste:

  • Umgesetzt mit LEFT JOIN + WHERE IS NULL
  • Findet Datensätze ohne zugehörige Daten
  • Auch „LEFT EXCLUDING JOIN“ genannt
  • Beispiel: Kunden, die nie eine Bestellung aufgegeben haben

RIGHT ANTI JOIN

Gibt Zeilen der rechten Tabelle zurück, zu denen es in der linken Tabelle keine passenden Zeilen gibt. Das Gegenstück zum LEFT ANTI JOIN.
SELECT orders.id
FROM customers
RIGHT JOIN orders
  ON customers.id = orders.customer_id
WHERE customers.id IS NULL

-- Usually rewritten as LEFT ANTI JOIN
SELECT orders.id
FROM orders
LEFT JOIN customers
  ON orders.customer_id = customers.id
WHERE customers.id IS NULL

Das Wichtigste:

  • Umgesetzt mit RIGHT JOIN + WHERE IS NULL
  • Findet verwaiste Datensätze in der rechten Tabelle
  • Lässt sich immer als LEFT ANTI JOIN umschreiben
  • Beispiel: Bestellungen ohne gültigen Kunden

Suchst du einen besseren Weg, SQL zu schreiben?

Beekeeper Studio ist ein moderner, intuitiver SQL-Editor mit Autovervollständigung, Abfrageverlauf und Unterstützung für über 15 Datenbanken.

Beekeeper Studio kostenlos testen