Alles bis auf 11 2b)
This commit is contained in:
63
M3/M3.md
63
M3/M3.md
@@ -52,4 +52,67 @@ INSERT INTO gericht_hat_kategorie VALUES (21, 3);
|
||||
```
|
||||
|
||||
|
||||
# Aufgabe 6
|
||||
|
||||
## Abfragen
|
||||
|
||||
1) Alle Gerichte mit allen zugehörigen Allergenen
|
||||
``` sql
|
||||
SELECT DISTINCT name, GROUP_CONCAT(code) FROM gericht g JOIN gericht_hat_allergen a ON g.id = a.gericht_id GROUP BY name ASC;
|
||||
```
|
||||
2) Ändern Sie die vorherige Abfrage so ab, dass alle existierenden Gerichte dargestellt werden (auch wenn keine Allergene enthalten sind).
|
||||
``` sql
|
||||
SELECT DISTINCT name, GROUP_CONCAT(code) FROM gericht g LEFT JOIN gericht_hat_allergen a ON g.id = a.gericht_id GROUP BY name ASC;
|
||||
```
|
||||
3) Ändern Sie die vorherige Abfrage so ab, so dass im Ergebnis alle existierenden Allergene dargestellt werden (auch wenn diese nicht einem Gericht zugeordnet sind).
|
||||
``` sql
|
||||
SELECT DISTINCT allergen.code, GROUP_CONCAT(gericht.name) AS gericht FROM allergen LEFT JOIN gericht_hat_allergen on allergen.code = gericht_hat_allergen.code LEFT JOIN gericht ON gericht_hat_allergen.gericht_id = gericht_id
|
||||
GROUP BY allergen.name
|
||||
ORDER BY code ASC;
|
||||
```
|
||||
4) Die Anzahl der Gerichte pro Kategorie aufsteigend sortiert nach Anzahl.
|
||||
``` sql
|
||||
SELECT kategorie.name, COUNT(kategorie_id) AS anzahl FROM gericht_hat_kategorie, kategorie
|
||||
WHERE kategorie.id = gericht_hat_kategorie.kategorie_id
|
||||
GROUP BY kategorie_id
|
||||
ORDER BY anzahl ASC;
|
||||
```
|
||||
5) Ändern Sie die vorherige Abfrage so ab, dass dabei nur die Kategorien dargestellt werden, die mehr als 2 Gerichte besitzen.
|
||||
``` sql
|
||||
SELECT kategorie.name, COUNT(kategorie_id) AS anzahl FROM gericht_hat_kategorie, kategorie
|
||||
WHERE kategorie.id = gericht_hat_kategorie.kategorie_id AND kategorie_id > 2
|
||||
GROUP BY kategorie_id
|
||||
ORDER BY anzahl ASC;
|
||||
```
|
||||
|
||||
|
||||
# Aufgabe 7
|
||||
elter_kategorie:
|
||||
``` sql
|
||||
FOREIGN KEY (id) REFERENCES kategorie(id),
|
||||
```
|
||||
|
||||
gericht_hat_allergen:
|
||||
``` sql
|
||||
code char(4),
|
||||
FOREIGN KEY (code) REFERENCES allergen(code),
|
||||
gericht_id int8 not null,
|
||||
FOREIGN KEY (gericht_id) REFERENCES gericht(id)
|
||||
|
||||
```
|
||||
|
||||
gericht_hat_kategorie:
|
||||
``` sql
|
||||
gericht_id int8 not null,
|
||||
FOREIGN KEY (gericht_id) REFERENCES gericht(id),
|
||||
kategorie_id int8 not null,
|
||||
FOREIGN KEY (kategorie_id) REFERENCES kategorie(id)
|
||||
|
||||
```
|
||||
# Aufgabe 11
|
||||
|
||||
## Relationenmodell
|
||||
|
||||
Kontakte(\_KontaktId\_,Vorname, Nachname, Email, Telefonnummer, Anrede, Typ, )
|
||||
Kunde(\_KontaktId\_)
|
||||
Lieferant(\_KontaktId\_,Wochentag_fuer_Lieferzeitraum)
|
||||
Reference in New Issue
Block a user