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.
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
sqlSie 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
- Bis zu 1 Gbit/s Bandbreite & unbegrenzt Traffic
- Schneller NVMe-SSD-Speicher
- Kostenlose Plesk Web Host Edition
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
sqlOUTER 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
sqlSQL 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
sqlSQL 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
sqlCROSS 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
sqlNATURAL 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
sqlSQL 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
sqlUm einen schnellen Einblick in die Anwendung von SQL zu bekommen, beachten Sie auch unsere SQL-Einführung mit Beispielen.