<< >> Up Title Contents Index

Informationen aus zwei Tabellen

Die folgende Anweisung fragt danach, ob und wann für den Kunden 'Barth' eine Buchung vorliegt.

Zur Beantwortung dieser Frage müssen zwei Tabellen durchsucht werden. Der Kundenname steht in der Tabelle 'kunde', die Buchungsdaten stehen in der Tabelle 'buchung'. Die Verbindung zwischen beiden wird durch die Kundennummer hergestellt, die in beiden Tabellen erscheint. Eine solche Anweisung wird als Join bezeichnet.

SELECT buchung.bnr, kunde.nachname, buchung.ankunft, abreise
       FROM kunde, buchung
       WHERE kunde.nachname = 'Barth' AND
             kunde.knr = buchung.knr

Syntaxhinweis:

Die Verknüpfung der beiden Kundennummern im WHERE-Teil stellt die notwendige Brücke her. Als Operatoren sind '=' (gleich), '<' (kleiner), '<=' (kleiner oder gleich), '>' (größer), '>=' (größer oder gleich) und '<>' (ungleich) möglich.

Die ganze Anfrage kann folgendermaßen gelesen werden:

Suche alle Zeilenpaare aus 'kunde' und 'buchung', wobei die Kundennummer in beiden Halbzeilen gleich und der Nachname in der Kundentabelle 'Barth' sein soll. Wähle aus der zusammengesetzten Gesamtzeile die Buchungsnummer, den Kundennamen und die Reisedaten aus.

Das nächste Beispiel verbindet die beiden Tabellen ohne Einschränkung auf eine bestimmte Person. Die vorhin gefundene Person ist also in diesem Ergebnis enthalten.

SELECT buchung.bnr, kunde.knr, nachname, buchung.ankunft, abreise
       FROM kunde, buchung
       WHERE kunde.knr = buchung.knr

Wenn Spalten in zwei verschiedenen Tabellen denselben Namen haben, muß vor dem Spalten- der Tabellenname angegeben werden, wobei beide durch einen Punkt verbunden werden. Zur besseren Lesbarkeit empfiehlt es sich, auch bei eindeutigen Spaltenbezeichnungen die Tabellennamen vor die Spaltennamen zu setzen.


<< >> Up Title Contents Index