Ein Streaminganbieter speichert Informationen über seine Nutzer in einer Datenbank.
Die Tabellen sehen beispielsweise so aus, wobei NUTZER.ZAHLUNGSDATEN_KundenID ein Fremdschlüssel zur Tabelle ZAHLUNGSDATEN ist:

In dieser Datenbank können bei Preismodellen wie "For-Two" oder "Family" mehrere Nutzer zu einem Kunden und seinen Zahlungsdaten gehören, weswegen zwischen den Tabellen NUTZER und ZAHLUNGSDATEN eine 1:n-Beziehung gilt.
Die Finanzabteilung möchte wissen, welche Preismodelle hinter den Kunden stecken, die mehr als 2000 Stunden gestreamt haben.
Formuliere eine SQL-Anfrage, die den zugehörigen Kundennamen und das Preismodell aller Nutzer heraussucht, die mehr als 2000 Stunden gestreamt haben.
Lösung anzeigen
Ausgegeben werden sollen der Name und das Preismodell aus ZAHLUNGSDATEN:
SELECT ZAHLUNGSDATEN.Name, ZAHLUNGSDATEN.PreismodellDa die Nutzungsstunden in der Tabelle NUTZER liegen, müssen Daten aus zwei Tabellen verwendet werden:
FROM NUTZER,ZAHLUNGSDATENDamit man nicht das kartesische Produkt bekommt, sondern den natürlichen Verbund, muss die Fremdschlüssel-Beziehung zwischen den Tabellen genutzt werden:
WHERE ZAHLUNGSDATEN.KundenID =NUTZER.ZAHLUNGSDATEN_KundenIDZusätzlich sollen jetzt nur die Datensätze angezeigt werden, in denen der Nutzer mehr als 2000 Stunden gestreamt hat. Mehrere Bedingungen, die gleichzeitig gelten sollen, werden mit AND verbunden:
AND NUTZER.Nutzungsstunden> 2000;Die komplette Abfrage lautet also:
SELECT ZAHLUNGSDATEN.Name, ZAHLUNGSDATEN.Preismodell
FROM NUTZER, ZAHLUNGSDATEN
WHERE ZAHLUNGSDATEN.KundenID = NUTZER.ZAHLUNGSDATEN_KundenID
AND NUTZER.Nutzungsstunden > 2000;