WHERE Tabellenverbund
Nanu, schon wieder WHERE? Das haben wir doch erst im Kapitel Datenmanipulation kennen gelernt. Tatsächlich kam WHERE in SQL-89 auch bei der Verknüpfung von mehreren Tabellen zum Einsatz. Seit SQL-92 gibt es aber den Befehl JOIN, der mehr Optionen für das Verknüpfen der Tabellen mitsich bringt. Dennoch wird auch heute noch an Schulen die Verknüpfung von Tabellen mit WHERE gelehrt, deshalb möchte ich auch an dieser Stelle nicht darauf verzichten. Der Grund, warum an Schule noch WHERE beim Tabellenverbund genutzt wird, ist wohl der Tatsache geschuldet, dass der Einfach klar und einfach ist, wie man im nachfolgenden Beispiel sieht. Wir besitzen nun die beiden Tabellen Buecher und Autor:


Nun möchten wir einmal den Titel der Bücher, samt ihres Autoren (Vor- und Nachname) uns ausgeben lassen. Damit das funktioniert, müssen wir in der WHERE Klausel die beiden Tabellen „verbinden“. Dies geht ganz einfach, in dem wir sagen, dass alle Datensätze ausgewählt werden sollen, wo der Primärschlüssel AutorNr der Tabelle Autor mit dem Fremdschlüssel AutorNr in der Tabelle Buecher übereinstimmt. Da beide Schlüssel den gleichen Namen haben, müssen wir den Tabellennamen entsprechend davor schreiben. Die WHERE-Bedingung für den Tabellenverbund würde also lauten:
WHERE Buecher.AutorNr = Autor.AutorNr
Das war es schon. Dieses WHERE müssen wir nun in unsere normale Abfrage aufnehmen, sodass das Ganze dann so aussieht:
SELECT Titel, Vorname, Nachname
FROM Buecher, Autor
WHERE Buecher.AutorNr = Autor.AutorNr;
Ausgabe:
In der FROM Zeile, müssen natürlich alle Tabellen aufgeführt werden, die verknüpft werden sollen.