AUFGABE 4.3 IST TEUFLISCH

This commit is contained in:
Leon Amtmann 2022-05-18 19:11:17 +02:00
parent 6b73808006
commit 4000eddd4c

View File

@ -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 ', ')
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;
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
# 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;
/*