SQL JOIN-Befehle – für effiziente Datenanalyse und Berichterstellung

SQL JOIN-Befehle zählen bei der Analyse und Bearbeitung von relationalen Datenbanken zu den wichtigsten SQL-Befehlen. Sie ermöglichen es, verknüpfte Daten in mehreren Tabellen abzufragen und in Ergebnistabellen zusammenzuführen. Je nach Anwendungsfall kommen hierzu JOIN-Befehle wie INNER JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN oder FULL JOIN zum Einsatz.

Was sind SQL JOIN-Befehle?

Für die Arbeit mit Datenbanken – ganz gleich, ob On-Premises oder per Cloud – gilt die Programmier- und Datenbanksprache SQL als Standard. Sie ermöglicht es nicht nur, relationale Datenbanken zu erstellen, sondern auch Datenabfragen mittels diverser SQL-Befehle durchzuführen. Zu den wichtigsten und am häufigsten verwendeten Befehlen zählt die Kategorie der SQL JOINS.

Bei SQL JOINS handelt es sich um Befehle, mit denen Sie Daten tabellenübergreifend abfragen, verknüpfen und aussagekräftig zusammenführen. Als Voraussetzung gilt lediglich eine logische Verbindung zwischen den Tabellen. Diese Verbindung stellen entsprechende Primär- und Fremdschlüssel her, über die sich Daten mittels JOIN-Befehle zusammenführen lassen.

Hinweis

Primär- und Fremdschlüssel bilden wichtige Kennwerte für SQL JOINS. Primärschlüssel identifizieren Zeilen eindeutig und dürfen keine Nullwerte enthalten. Fremdschlüssel stellen eine Verbindung zwischen Tabellen her. Beispiel: In einer Angestellten-Tabelle dient „Angestellten ID“ als Primärschlüssel. In einer KFZ-Tabelle ist „KFZ ID“ der Primärschlüssel. Beide Tabellen lassen sich mit „KFZ ID“ als Fremdschlüssel in der Angestellten-Tabelle verknüpfen.

Welche Arten von SQL JOIN-Befehlen gibt es?

Je nach Anwendungsfall bieten sich verschiedene JOIN-Befehle an. Zunächst werfen wir einen Blick auf die grundlegenden Parameter:

  • SELECT: Legt Spalten fest, die für SQL JOIN in Frage kommen. Mit einem Asterisk (*) lässt sich auch der ganze Datensatz auswählen.
  • FROM: Legt die Tabelle fest, aus der Daten mit einer weiteren Tabelle zusammengeführt werden.
  • JOIN Befehl: Erzeugt gemäß dem JOIN-Befehl eine Zieltabelle, die ausgewählte Daten verknüpft, zusammenführt oder vergleicht.
  • ON: Legt fest, nach welcher JOIN-Bedingung, abgerufene Daten zusammengeführt werden.

Die grundlegende Syntax enthält bei den meisten SQL JOIN-Befehlen dieselben oder ähnliche Parameter und sieht wie folgt aus:

SELECT  spalteA,  spalteB, …
FROM  tabelleA
JOIN-Befehl  tabelleB
ON  tabelleA.spalte  =  tabelleB.spalte
sql
Tipp

Sie suchen nach einer sicheren, leistungsstarken Lösung für Ihr Datenbank-Management-System? Dann bietet Ihnen SQL Server Hosting von IONOS die passenden Server- und Hosting-Angebote mit deutschen Datenschutzstandards – dazu zählen Cloud Server, vServer (VPS), Dedicated Server oder Linux Hosting mit MSSQL, MySQL oder MariaDB

vServer (VPS) von IONOS

Günstige und starke VPS für Webserver, Mailserver und eigene Anwendungen mit persönlichem Berater und 24/7 Support!

100 % SSD-Speicher
Bereit in 55 Sek.
SSL Zertifikat

Zu den wichtigsten SQL JOIN-Befehlen zählen die im Folgenden vorgestellten.

SQL INNER JOIN

Mit diesem Befehl führen Sie Daten aus zwei Tabellen in einer Ergebnistabelle zusammen, wenn zwei übereinstimmende Werte in einer gemeinsamen Spalte vorliegen. Der INNER JOIN dient als häufigster JOIN-Befehl und als Standardeinstellung, wenn Sie keinen konkreten JOIN-Typ wählen.

Praktisches Beispiel:

Der INNER JOIN kommt für eine Tabelle „Bestellungen“ mit den Spalten „Bestellnummer“, „KundenID“, „ProduktID“ und „Bestelldatum“ sowie für eine Tabelle „Kunden“ mit den Spalten „KundenID“, „Name“ und „Adresse“ zum Einsatz. Die Spalte „KundenID“ dient in „Kunden“ als Primärschlüssel und in „Bestellungen“ als Fremdschlüssel. Der INNER JOIN führt anhand der KundenID alle Bestellungen und Kundendaten von Kunden und Kundinnen in der Ergebnistabelle zusammen.

Der SQL INNER JOIN-Befehl sieht wie folgt aus:

SELECT  bestellungen.bestellnummer, kunden.name, bestellungen.produktid, bestellungen.bestelldatum
FROM  bestellungen
INNER JOIN  kunden
ON  bestellungen.kundenid  =  kunden.kundenid
sql

OUTER JOIN

OUTER JOIN dient als Oberbegriff für die Befehle SQL LEFT JOIN, RIGHT JOIN und FULL JOIN. Der SQL OUTER JOIN führt Gegensatz zum INNER JOIN nicht nur übereinstimmende Zeilen, sondern auch nicht übereinstimmende Zeilen per NULL-Wert zusammen. Eine detaillierte Erklärung folgt unter LEFT JOIN, OUTER JOIN und FULL JOIN.

SQL LEFT JOIN

Der Befehl LEFT JOIN verknüpft alle Daten einer linken Tabelle mit übereinstimmenden Daten der rechten Tabelle. Bei nicht übereinstimmenden Daten gibt der Befehl ein NULL-Wert aus.

Praktisches Beispiel:

Der SQL LEFT JOIN führt sowohl übereinstimmende als auch nicht übereinstimmende Datensätze aus einer linken Tabelle „Kunden“ mit einer rechten Tabelle „Kfz“ anhand der gemeinsamen Spalte „KfzID“ zusammen. Im Gegensatz zum INNER JOIN gibt der Befehl auch nicht übereinstimmende Daten mit dem Wert NULL aus.

Der SQL LEFT JOIN-Befehl sieht wie folgt aus:

SELECT  *
FROM  kunden
INNER JOIN  kfz
ON  kunden.kfzid  =  kfz.kfzid
sql

SQL RIGHT JOIN

Der Befehl RIGHT JOIN verknüpft Daten aus der rechten Tabelle mit übereinstimmenden Daten der linken Tabelle. Bei Nichtübereinstimmung steht ebenfalls ein NULL-Wert in Spalten der linken Tabelle.

Praktisches Beispiel:

Der SQL RIGHT JOIN fügt anhand der KundenID zu Daten einer rechten Tabelle „Kunden“ alle ausgewählten Daten einer linken Tabelle „Bestellungen“ hinzu. Bei Nichtübereinstimmung gibt der Befehl den Wert NULL an – beispielsweise, wenn für eine KundenID weder Bestellungen noch Namen vorliegen.

Der SQL RIGHT JOIN-Befehl sieht wie folgt aus:

SELECT  bestellungen.bestellnummer, kunden.name, bestellungen.produktid, bestellungen.bestelldatum
FROM  kunden
RIGHT JOIN  bestellungen
ON  bestellungen.kundenid  =  kunden.kundenid
sql

SQL FULL JOIN

Der Befehl FULL JOIN stellt eine Kombination aus LEFT JOIN und RIGHT JOIN dar und ist auch als FULL OUTER JOIN bekannt. Der Befehl führt alle Datensätze und Spalten aus beiden Tabellen zusammen. Bei Nichtübereinstimmung gibt der Befehl NULL-Werte aus.

Praktisches Beispiel:

Der FULL JOIN führt alle übereinstimmenden sowie nicht übereinstimmenden Daten einer rechten Tabelle „Mitarbeiterinnen und Mitarbeiter“ mit einer linken Tabelle „Abteilung“ anhand der KundenID zusammen. Lässt sich keine Abteilung zuordnen, steht ein NULL-Wert bei Abteilung.

Der SQL FULL JOIN-Befehl sieht wie folgt aus:

SELECT  *
FROM  mitarbeiterinnen und mitarbeiter
FULL JOIN  kunden
ON  mitarbeiter.abteilungid  =  abteilung.abteilungid
sql

CROSS JOIN

Der CROSS JOIN ist auch als kartesischer JOIN bekannt. Er verknüpft sämtliche Datensätze der linken und rechten Tabelle unabhängig von Übereinstimmungen. Da er alle möglichen Kombinationen zurückgibt, braucht es keine On-Klausel für eine JOIN-Bedingung.

Praktisches Beispiel:

Der CROSS JOIN führt alle Daten der rechten Tabelle „Produkte“ mit der linken Tabelle „Bestellungen“ zusammen.

Der SQL CROSS JOIN-Befehl sieht wie folgt aus:

SELECT  *
FROM  produkte
CROSS JOIN  bestellungen
sql

NATURAL JOIN

Der Befehl NATURAL JOIN verknüpft alle Datensätze von zwei Tabellen anhand gemeinsamer Spalten. Der Parameter ON entfällt, da eine gemeinsame Spalte keine Voraussetzung ist. Da der Befehl automatisch gemeinsame Spalten der Tabellen zusammenführt, entfällt die ON-Klausel.

Praktisches Beispiel:

Der NATURAL JOIN führt die Tabellen „Team“ und „Abteilung“ anhand gemeinsamer Spalten in zusammen. Der Befehl liefert nur Ergebnisse, wenn mindestens eine gemeinsame Spalte vorliegt.

SQL NATURAL JOIN sieht wie folgt aus:

SELECT  *
FROM  bestellungen
NATURAL JOIN  kunden
sql

SQL SELF JOIN

Der Befehl SQL SELF JOIN verknüpft eine Tabelle mit sich selbst, indem er sie als linke und rechte Tabelle behandelt. Sie können daher grundsätzlich jeden anderen Befehl für eine SELF-JOIN-Operation nutzen. In der Syntax dienen t1 und t2 als Aliasses für eine rechte und linke Tabelle, da es sich um dieselbe Tabelle handelt.

Grundlegende Syntax am Beispiel LEFT JOIN:

SELECT  *
FROM  tabelleA AS t1
LEFT JOIN  tabelleA AS t2
ON  t1.spaltename  =  t2.spaltenname
sql
Tipp

Um einen schnellen Einblick in die Anwendung von SQL zu bekommen, beachten Sie auch unsere SQL-Einführung mit Beispielen.