AUFGABE 4.3 IST TEUFLISCH
This commit is contained in:
parent
6b73808006
commit
4000eddd4c
@ -39,18 +39,37 @@ GROUP BY Menuname;
|
||||
Geben sie mit SQL alle Produkte mit für Kundinnen und Kunden relevanten Informationen für
|
||||
eine bestimmte Person aus (betreffend Allergenen, Unverträglichkeiten, vegetarisch, etc.).
|
||||
-----------------------------------------------------------------------
|
||||
TODO Redo
|
||||
*/
|
||||
SELECT Personenvorname,
|
||||
Personenname,
|
||||
GROUP_CONCAT(DISTINCT P.Produktname SEPARATOR ', ')
|
||||
SET @vorname := 'Florian';
|
||||
SET @nachname := 'Kaiser';
|
||||
|
||||
# UNION von Nur Zusatzstoffe und Nur Allergene
|
||||
SELECT Produktname, GROUP_CONCAT(Zusatzstoff) AS Zusatzstoff, GROUP_CONCAT(Allergen) AS Allergen
|
||||
FROM (SELECT Produktname,
|
||||
GROUP_CONCAT(enthaeltZusatzstoff.E_Nummer) as Zusatzstoff,
|
||||
NULL Allergen
|
||||
FROM Person
|
||||
JOIN Allergie A on Person.PersonID = A.PersonID
|
||||
JOIN Allergen A2 on A.AllergenID = A2.AllergenID
|
||||
JOIN enthaeltAllergen eA on A2.AllergenID = eA.AllergenID
|
||||
JOIN Produkt P on eA.ProduktID = P.ProduktID
|
||||
JOIN enthaeltZusatzstoff eZ on P.ProduktID = eZ.ProduktID
|
||||
GROUP BY Personenvorname, Personenname;
|
||||
# Zusatzstoffe
|
||||
JOIN Zusatzstoffunvertraeglichkeit on Person.PersonID = Zusatzstoffunvertraeglichkeit.PersonID
|
||||
JOIN enthaeltZusatzstoff on enthaeltZusatzstoff.E_Nummer = Zusatzstoffunvertraeglichkeit.E_Nummer
|
||||
LEFT JOIN Produkt on Produkt.ProduktID = enthaeltZusatzstoff.ProduktID
|
||||
WHERE Personenname = @nachname
|
||||
AND Personenvorname = @vorname
|
||||
GROUP BY Produktname
|
||||
UNION ALL
|
||||
SELECT P.Produktname,
|
||||
NULL Zusatzstoff,
|
||||
GROUP_CONCAT(DISTINCT Allergenbezeichnung SEPARATOR ', ') AS Allergen
|
||||
FROM Person
|
||||
# Allergien
|
||||
JOIN Allergie on Person.PersonID = Allergie.PersonID
|
||||
JOIN Allergen on Allergen.AllergenID = Allergie.AllergenID
|
||||
JOIN enthaeltAllergen on Allergen.AllergenID = enthaeltAllergen.AllergenID
|
||||
JOIN Produkt P on P.ProduktID = enthaeltAllergen.ProduktID
|
||||
WHERE Personenname = @nachname
|
||||
AND Personenvorname = @vorname
|
||||
GROUP BY Produktname) AS x
|
||||
GROUP BY Produktname;
|
||||
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user