Du hast folgende Tabellen zur Verwaltung der Datenbank eines Streaminganbieters:

Du möchtest nun durch eine SQL-Anfrage den Namen und das Preismodell aller Nutzer, die mehr als 2000 Nutzungsstunden haben und findest online, dass dazu im FROM-Statement der SQL-Abfrage mehrere Tabellen angegeben werden können und man mit TABELLENNAME.Attributname auf das jeweilige Attribut einer Tabelle zugreifen kann.
Deine Abfrage lautet
SELECT NUTZER.UserID, ZAHLUNGSDATEN.KundenID,
ZAHLUNGSDATEN.Name, ZAHLUNGSDATEN.Preismodell
FROM NUTZER, ZAHLUNGSDATEN
WHERE NUTZER.Nutzungsstunden > 2000;Du stutzt über das Ergebnis, statt 5 Zeilen hat deine Tabelle 45 Zeilen. Ein Ausschnitt sieht so aus:

Schau dir die Ausgangssituation und das Ergebnis an. Beschreibe anschließend in eigenen Worten: Was ist hier passiert?
Lösung anzeigen
Betrachte die KundenIDs und die UserIDs. Was fällt dir auf?
In der Tabelle NUTZER sind 5 Profile, die den Suchkriterien entsprechen. Sie haben die UserIDs 11, 221, 342 ,522 und 2342.
In der Tabelle ZAHLUNGSDATEN gibt es ingsesamt 9 Einträge. Die Einträge, die zur Suchanfrage passen, kannst du über die Fremdschlüsselbeziehung der beiden Taebllen leicht herausfinden. Es sind die von Paul Mastrich, Klaus Wagner, Gertrude Winkel, Benoit Fronc und Bernhard Füssel:

Allerdings siehst du im Ausschnitt der Ergebnistabelle zum Beispiel auch Sven Berger, der mit keinem seiner Profile mehr als 2000 Stunden gestreamt hat.
Außerdem wird Paul Mastrich insgesamt 5 Mal gelistet - einmal mit jeder der 5 UserIDs
Es werden also alle 9 Personen, die in den ZAHLUNGSDATEN hinterlegt sind, mit allen 5 UserIDs kombiniert.
Das ergibt Einträge in der Ergebnistabelle.
Es wurde ein sogenanntes kartesisches Produkt gebildet: Alle Einträge, die du aus der einen Tabelle (nach der Selektion) entnommen hast, werden mit allen Einträgen aus der anderen Tabelle kombiniert.