Dies ist eine alte Version des Dokuments!
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 jedem der anderen Tabelle(n) kombiniert.