Der Inner Join basiert auf dem Cross Join, allerdings kann man hier eine Auswahl treffen, welche Zeilen verbunden werden sollen.
SELECT ... FROM Tabellenname1 [Alias], Tabellenname2 [Alias] WHERE ... --meist Tabellenname1.nummer = Tabellenname2.nummer
Beim „neuen“ Inner Join gibt es 3 Arten:
SELECT ... FROM Tabellenname1 [Alias] INNER JOIN Tabellenname2 [Alias] ON Vergleich --Vergleich könnte z.B. Tabellenname1.Wert = Tabellenname2.Wert sein
SELECT ... FROM Tabellenname1 [Alias] INNER JOIN Tabellenname2 [Alias] USING(Spaltenname)
Wichtig dabei ist, dass der Spaltenname im USING in beiden Tabellen existiert.
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]
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.
Die Aufgabenstellung ist für ON und USING die gleiche. Zeige von jedem Mitarbeiter den Namen und die Abteilung an, in der er arbeitet.
SELECT Name, Abteilungsname FROM Mitarbeiter m INNER JOIN Abteilung a ON m.Abteilungsnummer = a.Abteilungsnummer
SELECT Name, Abteilungsname FROM Mitarbeiter m INNER JOIN Abteilung a USING (Abteilungsnummer)