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
|
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 ', ')
|
|
||||||
|
# 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
|
FROM Person
|
||||||
JOIN Allergie A on Person.PersonID = A.PersonID
|
# Zusatzstoffe
|
||||||
JOIN Allergen A2 on A.AllergenID = A2.AllergenID
|
JOIN Zusatzstoffunvertraeglichkeit on Person.PersonID = Zusatzstoffunvertraeglichkeit.PersonID
|
||||||
JOIN enthaeltAllergen eA on A2.AllergenID = eA.AllergenID
|
JOIN enthaeltZusatzstoff on enthaeltZusatzstoff.E_Nummer = Zusatzstoffunvertraeglichkeit.E_Nummer
|
||||||
JOIN Produkt P on eA.ProduktID = P.ProduktID
|
LEFT JOIN Produkt on Produkt.ProduktID = enthaeltZusatzstoff.ProduktID
|
||||||
JOIN enthaeltZusatzstoff eZ on P.ProduktID = eZ.ProduktID
|
WHERE Personenname = @nachname
|
||||||
GROUP BY Personenvorname, Personenname;
|
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