Inhaltsverzeichnis

Inner Join

Der Inner Join basiert auf dem Cross Join, allerdings kann man hier eine Auswahl treffen, welche Zeilen verbunden werden sollen.

Syntax alt

SELECT ...
FROM Tabellenname1 [Alias], Tabellenname2 [Alias]
WHERE ... --meist Tabellenname1.nummer = Tabellenname2.nummer

Syntax neu

Beim „neuen“ Inner Join gibt es 3 Arten:

ON Klausel

SELECT ...
FROM Tabellenname1 [Alias] INNER JOIN Tabellenname2 [Alias] ON Vergleich
--Vergleich könnte z.B. Tabellenname1.Wert = Tabellenname2.Wert sein

USING Klausel

SELECT ...
FROM Tabellenname1 [Alias] INNER JOIN Tabellenname2 [Alias] USING(Spaltenname)

Wichtig dabei ist, dass der Spaltenname im USING in beiden Tabellen existiert.

NATURAL JOIN

Der NATURAL JOIN ist ein Spezialfall der USING-Klausel. Bei ihm werden alle Spalten beider Tabellen auf Gleichheit überprüft.

SELECT ...
FROM Tabellenname1 [Alias] NATURAL JOIN Tabellenname2 [Alias]

Spezialfall - Self Join

Bei einem Self Join wird eine Tabelle mit sich selbst verknüpft. Das heißt, sie steht sowohl links als auch rechts von INNER JOIN.

Beispiele

Die Aufgabenstellung ist für ON und USING die gleiche. Zeige von jedem Mitarbeiter den Namen und die Abteilung an, in der er arbeitet.

Beispiel ON Klausel

SELECT Name, Abteilungsname
FROM Mitarbeiter m INNER JOIN Abteilung a ON m.Abteilungsnummer = a.Abteilungsnummer

Beispiel USING Klausel

SELECT Name, Abteilungsname
FROM Mitarbeiter m INNER JOIN Abteilung a USING (Abteilungsnummer)