Inner Join Tutorial

INNER JOIN

Da es oft nicht reicht, in SQL Abfragen nur auf eine Tabelle zu machen, gibt es die Möglichkeit, mit Joins Abfragen auf mehrere Tabellen zu machen. Es gibt vier verschiedene Arten von Joins:

  • Inner Join
  • Left Outer Join
  • Right Outer Join
  • Full Outer Join


In diesem Kapitel wird der Inner Join näher behandelt. Der Inner Join führt Einträge aus der linken und rechten Tabelle nur dann zusammen, wenn die angegebenen Bedingungen erfüllt sind. Es gibt mehrere Möglichkeiten, um bei einem Join eine Bedingung anzugeben.

Wenn es in beiden Tabellen eine Spalte gibt, die übereinstimmen soll und diese Spalte in jeder Tabelle genau gleich heißt, kann man USING verwenden. Häufiger ist jedoch ON, bei dem explizit die Spaltennamen, die übereinstimmen sollen, angegeben werden. Wenn es in den zwei (oder mehreren Tabellen) Spalten gibt, die gleich heißen, kann man diese referenzieren, indem der Tabellenname angeführt wird und dann über einen Punkt auf die Spalte zugegriffen wird, wie man auch in folgendem Beispiel für die Verwendung eines Inner Joins mit ON sehen kann:

SELECT *
FROM student INNER JOIN studentCourse ON id = studentId;

Aus den folgenden zwei Tabellen (links die student Tabelle, rechts die studentCourse Tabelle):

linke Tabelle           rechte Tabelle       

entsteht folgende Tabelle:

zusammengefügte Tabelle


Man sieht hier, dass nur jene Studenten übernommen wurden, die auch einen Eintrag in der studentCourse Tabelle haben. Aus der studentCourse Tabelle hingegegen wurden alle Einträge übernommen, weil jeder dort eingetragene Student auch einen Eintrag in der student Tabelle hat.

Es ist auch möglich, Tabellen anders zu benennen, sodass es nicht immer nötig ist, bei gleichlautenden Spaltennamen die gesamte Tabellenbezeichnung anzuführen. Das funktioniert, indem hinter der Tabelle im FROM mit einem Leerzeichen Abstand die gewünschte Bezeichnung vergeben wird:

SELECT c.LastName, a.city
FROM Customer c INNER JOIN Address a ON c.id = a.CustomerId;