SQL-Joins

Wie werden die Tabellen (und Entitäten) jetzt aber mit SQL Abfragen verbunden, so das die gewünschten „zusammengesetzten“ Informationen als Ergebnis der Abfrage vorliegen?

Aufbau

Eine Klausel für SQL-Joins ist im Wesentlichen folgendermaßen aufgebaut:

SELECT [DISTINCT] { spalten | * } FROM tabelle1, tabelle2, ... WHERE tabelle1.spalte1=tabelle2.spalte1, tabelle1.spalte2=tabelle2.spalte2, ...

Um die Ausdtrücke abzukürzen, kann man Tabellen mit mit dem Schlüsselwort AS mit Aliasen bezeichnen:

SELECT [DISTINCT] { spalten | * } FROM tabelle1 AS t1, tabelle2 AS t2, ... WHERE t1.spalte1=t2.spalte1,t1.spalte2=t2.spalte2, ...

Das Ergebnis eines Joins ist eine Tabelle mit allen Spalten, die in der SQL-Klausuel angegeben wurden. Die Spaltenbezeichnung muss eindeutig sein. Enthalten die Tabellen tabelle1 und tabelle2 gleichnamige Spalten wie id, muss die Spalte mit tabelle1.id eindeutig benannt sein. Wird keine WHERE-Bedingung angegeben, wird das Kreuzprodukt der Tabellen gebildet, d.h. jeder Datensatz einer Tabelle wird mit dem der anderen Tabelle(n) kombiniert.