Zurück zur Artikelliste Artikel
6 Leseminuten

SQL-JOINs Spickzettel

Bereit, SQL-JOINs zu meistern? Holen Sie sich jetzt Ihr herunterladbares Spickzettel! Ihr Shortcut, um ein Experte für SQL-JOINs zu werden, ist nur einen Klick entfernt.

Tauchen Sie tief in die Welt der SQL-JOINs ein mit unserem detaillierten SQL-JOIN Spickzettel auf Deutsch, einer unverzichtbaren Ressource für Datenbegeisterte auf jedem Niveau. Egal, ob Sie gerade erst anfangen oder Ihre Fähigkeiten schärfen möchten, dieser Leitfaden ist darauf zugeschnitten, Ihnen die schnelle Referenz zu bieten, die Sie benötigen, um SQL-JOINs effizient zu nutzen.

In diesem Leitfaden zeigen wir die Syntax jedes JOIN-Typs, zusammen mit praktischen Beispielen. Von den Grundlagen des INNER JOIN bis zu den Komplexitäten des FULL OUTER JOIN und dem selten verwendeten NATURAL JOIN, wir haben alles für Sie abgedeckt. Neben den Standard-JOIN-Operationen diskutieren wir fortgeschrittene Konstruktionen, wie das doppelte Verbinden derselben Tabelle (Self-Join) und die Verwendung von Nicht-Gleichheitsbedingungen (Non-Equi Self Join). Darüber hinaus zeigen wir Abfragen mit mehreren JOINs und mehreren Bedingungen, die es Ihnen ermöglichen, reale Datenszenarien mit Finesse zu bewältigen.

Verfügbar in den Formaten PDF und PNG für Ihre Bequemlichkeit, ist dieser Spickzettel so gestaltet, dass er leicht zugänglich ist, ideal zum Ausdrucken und in der Nähe zu halten für schnelle Referenzen.

Download-Optionen:

  • Download A4 PDF – Die Standardgröße für die meisten Drucker, bietet eine Balance zwischen Platz und Lesbarkeit.
  • Download Mobile PDF – Ein mobile-freundliches PDF zum einfachen Durchblättern auf Ihrem Mobilgerät.

Wenn Sie einen visuelleren Ansatz bevorzugen oder eine digital-freundliche Version für verschiedene Anwendungen benötigen, bieten wir das Spickzettel auch als hochauflösendes PNG-Bild an. Zum Herunterladen, rechtsklicken (für Desktop-Nutzer) oder lange tippen (für Mobil-Nutzer) auf das Bild.

Erste Seite des SQL JOIN Spickzettels Zweite Seite des SQL JOIN Spickzettels

Tabellen verbinden

JOIN kombiniert Daten aus zwei Tabellen.

Verbundene Tabelle

JOIN kombiniert typischerweise Zeilen mit gleichen Werten für die angegebenen Spalten. Normalerweise enthält eine Tabelle einen Primärschlüssel, d. h. eine oder mehrere Spalten, die Zeilen in der Tabelle eindeutig identifizieren (die Spalte Katze_Id in der Tabelle Katze ). Die andere Tabelle hat eine oder mehrere Spalten, die auf die Primärschlüsselspalten der ersten Tabelle verweisen (die Spalte Katze_Id in der Tabelle Spielzeug ). Solche Spalten sind Fremdschlüssel. Die JOIN Bedingung ist die Gleichheit zwischen den Primärschlüsselspalten in einer Tabelle und den Spalten, die sich auf sie in der anderen Tabelle beziehen.

JOIN

JOIN gibt alle Zeilen zurück, die mit der Bedingung ON übereinstimmen. JOIN wird auch als INNER JOIN bezeichnet.

SELECT *
FROM Spielzeug
JOIN Katze
  ON Spielzeug.Katze_Id = Katze.Katze_Id;
INNER JOIN

Es gibt auch eine andere, ältere Syntax, die jedoch nicht empfohlen wird. Führen Sie die verbundenen Tabellen in der FROM -Klausel auf und stellen Sie die Bedingungen in die WHERE -Klausel.

SELECT *
FROM Spielzeug, Katze
WHERE Spielzeug.Katze_Id = Katze.Katze_Id;

JOIN-Bedingungen

Die Bedingung JOIN muss keine Gleichheit sein - sie kann jede beliebige Bedingung sein. JOIN interpretiert die Bedingung JOIN nicht, sondern prüft nur, ob die Zeilen die gegebene Bedingung erfüllen.

Um in der Abfrage JOIN auf eine Spalte zu verweisen, müssen Sie den vollständigen Spaltennamen verwenden: zuerst den Tabellennamen, dann einen Punkt (.) und den Spaltennamen:

  ON Katze.Katze_Id = Spielzeug.Katze_Id

Sie können den Tabellennamen weglassen und nur den Spaltennamen verwenden, wenn der Name der Spalte in allen Spalten der verbundenen Tabellen eindeutig ist. D.h. wenn er nur einmal vorkommt.

NATURAL JOIN

Wenn die Tabellen gleichnamige Spalten haben, können Sie NATURAL JOIN anstelle von JOIN verwenden.

SELECT *
FROM Spielzeug
NATURAL JOIN Katze;
NATURAL JOIN

Die gemeinsame Spalte erscheint nur einmal in der Ergebnistabelle.

Hinweis: NATURAL JOIN wird in der Praxis selten verwendet.

LEFT JOIN

LEFT JOIN gibt alle Zeilen aus der linken Tabelle mit übereinstimmenden Zeilen aus der rechten Tabelle zurück. Zeilen ohne Übereinstimmung werden mit NULLs aufgefüllt. LEFT JOIN wird auch LEFT OUTER JOIN genannt.

SELECT *
FROM Spielzeug
LEFT JOIN Katze
  ON Spielzeug.Katze_Id = Katze.Katze_Id;
LEFT JOIN

RIGHT JOIN

RIGHT JOIN gibt alle Zeilen aus der rechten Tabelle mit übereinstimmenden Zeilen aus der linken Tabelle zurück. Zeilen ohne Übereinstimmung werden mit NULLs aufgefüllt. RIGHT JOIN wird auch RIGHT OUTER JOIN genannt.

SELECT *
FROM Spielzeug
RIGHT JOIN Katze
  ON Spielzeug.Katze_Id = Katze.Katze_Id;
RIGHT JOIN

FULL JOIN

FULL JOIN gibt alle Zeilen aus der linken Tabelle und alle Zeilen aus der rechten Tabelle zurück. Sie füllt die nicht übereinstimmenden Zeilen mit NULLs auf. FULL JOIN wird auch FULL OUTER JOIN genannt.

SELECT *
FROM Spielzeug
FULL JOIN Katze
  ON Spielzeug.Katze_Id = Katze.Katze_Id;
FULL JOIN

CROSS JOIN

CROSS JOIN gibt alle möglichen Kombinationen von Zeilen aus der linken und rechten Tabelle zurück.

SELECT *
FROM Spielzeug
CROSS JOIN Katze;

Andere Syntax:

SELECT *
FROM Spielzeug, Katze;
CROSS JOIN

Spalten- und Tabellen-Aliase

Aliase geben einer Tabelle oder einer Spalte in einer Tabelle einen vorläufigen Namen.

Tabellenaliase

Ein Spaltenalias benennt eine Spalte im Ergebnis um. Ein Tabellenalias benennt eine Tabelle innerhalb der Abfrage um. Wenn Sie einen Tabellenalias definieren, müssen Sie ihn anstelle des Tabellennamens überall in der Abfrage verwenden. Das Schlüsselwort AS ist bei der Definition von Aliasen optional.

SELECT
  b.Name AS Bes_Name,
  k.Katze_Name
FROM Katze AS k 
JOIN Besitzer AS b
  ON k.Bes_Id = b.Id;
Spalten- und Tabellenaliase

Self JOIN

Sie können eine Tabelle mit sich selbst verknüpfen, um z.B. eine Eltern-Kind-Beziehung darzustellen.

SELF JOIN

Jedes Vorkommen der Tabelle muss mit einem anderen Alias versehen werden. Jeder Spaltenreferenz muss ein entsprechender Tabellenalias vorangestellt werden.

SELECT
  Kind.Katze_Name AS Kind_Name,
  Mutter.Katze_Name   AS Mutter_Name
FROM Katze AS Kind
JOIN Katze AS Mutter
  ON Kind.Mutter_Id = Mutter.Katze_Id;
Selbstverbundene Tabelle

Non-equi self JOIN

Sie können z.B. eine Ungleichheit in der Bedingung ON verwenden, um alle verschiedenen Zeilenpaare anzuzeigen.

Non-equi join
SELECT
  a.Spielzg_Name AS Spielzg_a,
  b.Spielzg_Name AS Spielzg_b
FROM Spielzeug a
JOIN Spielzeug b
  ON a.Katze_Id < b.Katze_Id;
Selbstverbundene Tabelle

Mehrere JOINS

Sie können mehr als zwei Tabellen miteinander verbinden. Zuerst werden zwei Tabellen verbunden, dann wird die dritte Tabelle mit dem Ergebnis der vorherigen Verbindung verbunden.

Multiple joins

JOIN & JOIN

SELECT
  s.Spielzg_Name,
  k.Katze_Name,
  b.Name AS Bes_Name
FROM Spielzeug s
JOIN Katze k
  ON s.Katze_Id = k.Katze_Id
JOIN Besitzer b
  ON k.Besitzer_Id = b.Id;
JOIN & JOIN

JOIN & LEFT JOIN

SELECT
  s.Spielzg_Name,
  k.Katze_Name,
  b.Name AS Bes_Name
FROM Spielzeug s
JOIN Katze k
  ON s.Katze_Id = k.Katze_Id
LEFT JOIN Besitzer b
  ON k.Besitzer_Id = b.Id;
JOIN & LEFT JOIN

LEFT JOIN & LEFT JOIN

SELECT
  s.Spielzg_Name,
  k.Katze_Name,
  b.Name AS Bes_Name
FROM Spielzeug s
LEFT JOIN Katze k
  ON s.Katze_Id = k.Katze_Id
LEFT JOIN Besitzer b
  ON k.Besitzer_Id = b.Id;
LEFT JOIN & LEFT JOIN

JOIN mit mehreren bedingungen

Sie können mehrere JOIN Bedingungen verwenden, indem Sie das ON Schlüsselwort einmal und die AND Schlüsselwörter so oft wie nötig verwenden.

Join mit mehreren Bedingungen
SELECT
  Katze_Name,
  b.Name AS Bes_Name,
  k.Alter AS Katze_Alter,
  b.Alter AS Bes_Alter
FROM Katze k
JOIN Besitzer b
  ON k.Besitzer_Id = b.Id
 AND k.Alter < b.Alter;
Ergebnis des Verbindens mit mehreren Bedingungen