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 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.). eine bestimmte Person aus (betreffend Allergenen, Unverträglichkeiten, vegetarisch, etc.).
----------------------------------------------------------------------- -----------------------------------------------------------------------
TODO Redo
*/ */
SELECT Personenvorname, SET @vorname := 'Florian';
Personenname, SET @nachname := 'Kaiser';
GROUP_CONCAT(DISTINCT P.Produktname SEPARATOR ', ')
FROM Person # UNION von Nur Zusatzstoffe und Nur Allergene
JOIN Allergie A on Person.PersonID = A.PersonID SELECT Produktname, GROUP_CONCAT(Zusatzstoff) AS Zusatzstoff, GROUP_CONCAT(Allergen) AS Allergen
JOIN Allergen A2 on A.AllergenID = A2.AllergenID FROM (SELECT Produktname,
JOIN enthaeltAllergen eA on A2.AllergenID = eA.AllergenID GROUP_CONCAT(enthaeltZusatzstoff.E_Nummer) as Zusatzstoff,
JOIN Produkt P on eA.ProduktID = P.ProduktID NULL Allergen
JOIN enthaeltZusatzstoff eZ on P.ProduktID = eZ.ProduktID FROM Person
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;
/* /*