Der SQL INNER JOIN Befehl gibt eine Tabelle aus, die alle Zeilen von zwei Tabellen enthält, bei denen die Werte in einer ausgewählten Spalte gleich sind.
SELECT Spalte
FROM Tabelle1
INNER JOIN Tabelle2
ON Tabelle1.Spalte2 = Tabelle2.Spalte2;
SELECT Spalte
FROM Tabelle1
JOIN Tabelle2
ON Tabelle1.Spalte2 = Tabelle2.Spalte2;
Der INNER JOIN Befehl funktioniert auch ohne das „INNER“. Somit reicht JOIN aus, allerdings wird in der Regel INNER JOIN für Erklärungen genutzt, um diesen Befehl nicht mit dem Oberbegriff alles JOINs zu verwechseln.
Im Venn-Diagramm, welche in der Mathematik alle möglichen Beziehungen zwischen unseren Datensätzen aufzeigt, werden zwei Tabellen visualisiert, die via INNER JOIN miteinander verbunden werden. Der Bereich, der von beiden Kreisen überschnitten wird, zeigt alle Datensätze die zu beiden Tabellen gehören. Dieser Bereich gibt in einem INNER JOIN die ausgegebenen Datensätze wieder. Dabei werden alle Daten übernommen, bei denen die Einträge der ausgewählten Spalte in der Überschneidung identisch sind. Alle Werte aus den äußeren Kreisen werden verworfen, da diese keine identischen Bezugsdaten haben, die eine Verknüpfung mit der jeweils anderen Tabelle zulassen.
SQL INNER JOIN - Beispiel
In der Tabelle „Mitarbeiter“ sind alle Mitarbeiter des Unternehmens enthalten. In einer weiteren Tabelle „Abteilung_Mitarbeiter“ wird erfasst, von wann bis wann der Mitarbeiter in einer Abteilung tätig war und in welcher Abteilungs-ID er zuständig war. Um alle Mitarbeiter samt Abteilungs-IDs auszugeben wird folgender Befehl genutzt:
SELECT *
FROM Mitarbeiter
INNER JOIN Abteilungen
ON ma.abt_ID = abt_ma.abt_ID;
Damit werden alle Spalten beider Tabellen ausgegeben, bei denen die Spalte abt_ID identische Werte enthält.