Bedingungen mit AND verbinden
Eine Bedingung reicht oft nicht. Eltern suchen ein Spiel für ihr 7-jähriges Kind, und es soll weniger als 20 € kosten. Verbinde die beiden Bedingungen mit AND:
SELECT titel, altersfreigabe, preis
FROM spiele
WHERE altersfreigabe <= 7
AND preis < 20
ORDER BY preis, titel;| titel | altersfreigabe | preis |
|---|---|---|
| Cube Logic | 3 | 5 |
| Word Quest | 7 | 10 |
| Bakery Story | 3 | 15 |
| Ocean Deep | 7 | 15 |
| Pixel Racer | 3 | 15 |
Eine Zeile kommt nur ins Ergebnis, wenn beide Bedingungen für sie wahr sind. Cube Logic ist ab 3 Jahren geeignet und kostet 5 €: Beide Bedingungen sind wahr, also ist es dabei. Goal Rush ist auch ab 3 geeignet, kostet aber 50 €: Die zweite Bedingung ist falsch, also wird es weggelassen.
Du kannst so viele Bedingungen verbinden, wie du brauchst, und eine Zeile muss alle erfüllen. Setze jede Bedingung in eine eigene Zeile, mit AND am Anfang, und auch eine lange Bedingung ist leicht zu lesen. Die Adventure-Spiele für 12-Jährige für höchstens 20 €:
SELECT titel, altersfreigabe, preis
FROM spiele
WHERE genre = 'Adventure'
AND altersfreigabe <= 12
AND preis <= 20
ORDER BY titel;| titel | altersfreigabe | preis |
|---|---|---|
| Lost Temple | 12 | 20 |
| Ocean Deep | 7 | 15 |
Ein Bereich von Werten, etwa die Preise von 10 € bis 20 €, sind auch zwei mit AND verbundene Bedingungen: preis >= 10 AND preis <= 20. (Eine kürzere Schreibweise kommt später in dieser Lektion.)
Typischer Fehler: WHERE preis >= 10 AND <= 20. Du würdest sagen „ein Preis von mindestens 10 und höchstens 20“, aber in SQL muss jede Bedingung für sich vollständig sein. Der zweiten hier fehlt die Spalte, und SQLite meldet:
Error on line 1: near "<=": syntax errorSchreibe die Spalte in jede Bedingung: preis >= 10 AND preis <= 20.
So schreibst du es:
Anweisungen
- 1
Zeige die Kunden-ID, die Sterne und den Kommentar der Bewertungen des Spiels mit der ID 1 (
spiel_id), die mindestens 4 Sterne haben. Sortiere sie nach den Sternen, von den meisten, und dann nach der Kunden-ID:kunde_id sterne kommentar 2 5 Das beste RPG seit Jahren! 8 5 NULL 1 4 Tolle Geschichte, ein bisschen lang. - 2
Zeige darunter den Titel, die Altersfreigabe und den Preis der Spiele, die für 12-Jährige geeignet sind (Altersfreigabe höchstens 12) und mindestens 35 € kosten. Die teuersten zuerst, und Spiele mit demselben Preis nach dem Titel:
titel altersfreigabe preis Goal Rush 3 50 Ice Hockey Pro 3 45 Galaxy Trader 12 35 Star Pilots 12 35