3.1.2.5
Daten aus zwei Tabellen auslesen
Nach der Aufteilung sind die Daten sauberer gespeichert. Beim Auslesen müssen passende Datensätze aus land und kontinent aber wieder zusammengeführt werden.
Der erste Versuch
Aufgabe aus der Lernstrecke
- Alle Länder sollen zusammen mit dem Namen ihres Kontinents ausgegeben werden.
- Der FROM Teil wird auf zwei Tabellen erweitert.
- Eine Bedingung wie WHERE KNR = KNR führt zu einer Fehlermeldung, weil der Attributname doppeldeutig ist.
Warum entsteht zu viel?
FROM land, kontinent kombiniert zunächst jedes Land mit jedem Kontinent. Ohne Joinbedingung weiß die Datenbank nicht, welche Zeilen zusammengehören.
SELECT land.Name, kontinent.Name
FROM land, kontinent;Warum ist KNR doppeldeutig?
Das Attribut KNR kommt in beiden Tabellen vor. Deshalb muss man mit land.KNR und kontinent.KNR eindeutig machen, welches Attribut gemeint ist.

Jeder mit jedem oder passend verbunden
Der Unterschied zwischen Kreuzprodukt und Joinbedingung ist die Kernidee des Kapitels.
inf-schule Terra 3.1.2.5