Springe zum Inhalt oder Footer
SerloDie freie Lernplattform

Kurs

Abfragen über mehrere Tabellen

19Zusammenfassung

Häufig muss man Daten aus mehreren Tabellen mit SQL-Abfragen zusammentragen.

Hierfür kann man im FROM-Teil der Abfrage mehrere Tabellen durch ein Komma getrennt angeben:

SELECT *
FROM NUTZER, FILM, angeschaut;

kartesisches Produkt

Ohne weitere Einschränkungen bildet die Abfrage oben das kartesische Produkt aus den Tabellen und kombiniert jeden Eintrag jeder Tabelle mit jedem Eintrag der anderen.

Die Anzahl der Elemente im kartesischen Produkt ist deshalb das Produkt der Anzahlen der Datensätze in den beteiligten Tabellen:

Nutzer: 55 Einträge,

Film: 1010 Einträge,

kartesisches Produkt der beiden: 510 =505\cdot10\ =50 Einträge

natürlicher Verbund

Wichtiger für den Alltag ist der natürliche Verbund. Hier werden Fremdschlüssel genutzt, um Paare in den beiden Tabellen zu finden und zusammen zu setzen:

SELECT *
FROM NUTZER, ZAHLUNGSDATEN
WHERE NUTZER.KundenID = ZAHLUNGSDATEN.KundenID

1:n und m:n Beziehungen abfragen

Der einzige Unterschied zwischen den Abfragen für 1:n und m:n-Beziehungen ist die Anzahl der zu verknüpfenden Tabellen. Bei der 1:n-Beziehung müssen, wie im Beispiel direkt darüber, nur zwei Tabellen verknüpft werden. Bei der m:n-Beziehung muss auch die Beziehungstabelle mit verknüpft werden.

SELECT *
FROM angeschaut, NUTZER, FILM
WHERE angeschaut.UserID = NUTZER.UserID
AND angeschaut.FilmID = FILM.FilmID;

Es handelt sich in allen Fällen um ganz normale SQL-Abfragen und alle Befehle und Funktionen können ganz normal verwendet werden.


Dieses Werk steht unter der freien Lizenz
CC BY-SA 4.0Was bedeutet das?