Databases Reference
In-Depth Information
Wert des Attributs id aus der Tabelle reihen übereinstimmt. Das Ergebnis der
Abfrage sehen wir in Tabelle 13.4.
Tabelle 13.4: Ergebnis der Abfrage aus Listing 13.1
name
titel
Gespenster Geschichten
Gespenster Geschichten
Asterix
Asterix der Gallier
Asterix
Asterix und Kleopatra
Asterix
Asterix als Legionär
Asterix
Die Trabantenstadt
Asterix
Der große Graben
Tim und Struppi
Der geheimnisvolle Stern
Tim und Struppi
Tim und der Haifischsee
Franka
Das Kriminalmuseum
Franka
Das Meisterwerk
Grundsätzlich können wir im where -Teil beliebige Prädikate verwenden, um
zwei Tabellen miteinander zu verbinden. In den weitaus meisten Fällen wird aber
mit dem so genannten natürlichen Join (siehe auch Abschnitt 4.8) gearbeitet. Hier
gehen - wie auch schon im Beispiel - der Primärschlüssel der einen und Fremd-
schlüssel der anderen Tabelle ein.
In Abbildung 13.2 sehen wir die Wirkung eines Joins an zwei vereinfachten Tabel-
len.
Der SQL-Code kann bei Joins schnell unübersichtlich werden. Es empfiehlt sich
daher eine sorgfältige optische Aufteilung der syntaktischen Komponenten sowie
der Einsatz von Aliassen, wie etwa in der folgenden Variante unserer Anweisung:
select r.name, a.titel
from alben a, reihen r
where a.reihe=r.id
Man sieht so klarer, welches Attribut zu welcher Tabelle gehört; wenn in den betei-
ligten Tabellen aber gleichnamige Spalten in der Anweisung auftauchen, müssen
wir sogar den Tabellennamen oder einen Tabellenalias zur Qualifikation verwen-
den.
Ein Join ist auch ohne Join-Bedingung möglich:
select a.titel
from alben a, reihen r
Da hier aber - unabhängig davon, ob sie zusammenpassen - alle Datensätze mit-
einander kombiniert werden, ist das Ergebnis sinnlos. Diese Art des Joins ent-
spricht dem kartesischen Produkt der Relationenalgebra; man findet ihn in der
 
Search WWH ::




Custom Search