Personennamen zu Anmeldungen
Noch nicht begonnen
Aufgabenstellung
Zeige für jede Anmeldung den Namen der Person und die Kurs-ID. Personen mit mehreren Anmeldungen erscheinen mehrfach; Personen ohne Anmeldung erscheinen nicht.
Ergebnisspalten in dieser Reihenfolge: name, kurs_id. Die Zeilenreihenfolge ist hier beliebig. Gib genau diese eine Ergebnistabelle aus.
Datenbankschema und vollständige Startdaten anzeigen
Fiktive Übungsdaten. Jeder Test startet neu mit genau diesen Daten. NULL bedeutet: kein Wert gespeichert. Preise und Beträge sind ganze Euro; das Datum hat das Format JJJJ-MM-TT.
CREATE TABLE person (id INTEGER PRIMARY KEY, name TEXT NOT NULL, ort TEXT NOT NULL);| id | name | ort |
|---|---|---|
| 1 | Aylin | Ulm |
| 2 | Ben | Ulm |
| 3 | Cem | Baden |
| 4 | Dana | Baden |
CREATE TABLE kurs (id INTEGER PRIMARY KEY, titel TEXT NOT NULL);| id | titel |
|---|---|
| 1 | SQL |
| 2 | Python |
| 3 | Datenmodell |
CREATE TABLE anmeldung (person_id INTEGER NOT NULL REFERENCES person(id), kurs_id INTEGER NOT NULL REFERENCES kurs(id), punkte INTEGER, PRIMARY KEY (person_id, kurs_id));| person_id | kurs_id | punkte |
|---|---|---|
| 1 | 1 | 12 |
| 1 | 2 | 9 |
| 2 | 1 | NULL |
| 3 | 2 | 15 |
| 3 | 1 | 12 |
Ausgabe bzw. Vorschau
2 Tipps anzeigen
- anmeldung.person_id verweist auf person.id.
- Die ON-Bedingung verhindert, dass jede Person mit jeder Anmeldung kombiniert wird.
Lösung anzeigen
SELECT p.name, a.kurs_id FROM person AS p INNER JOIN anmeldung AS a ON a.person_id = p.id;