Hilfe bei einem Befehl.

Kimy86

Neuer Benutzer
Beiträge
1
Hallo Leute ich erstelle mir gerade eine Rezept DB. sie sieht wie folgt aus. Jetzt wollte ich mir einen Befehl erstellen wie ich Zutaten eingebe und das Rezept mit Nährwerten ausgegeben wird. Ich hab es zwar geschafft einen zu erstellen der mich direkt nach dem Rezept suchen lässt, allerdings komm ich hier nicht weiter. Ich würd mich freuen wenn der ein oder andere einen Code für mich hätte.

Code:
CREATE TABLE `db`.`Naehrwerte` (
`ID` INT NOT NULL ,
`Name` VARCHAR( 100 ) NOT NULL ,
`Kcal` INT NOT NULL ,
`Eiweis` INT NOT NULL ,
`Kohlenhydrate` INT NOT NULL ,
`Fett` INT NOT NULL ,
PRIMARY KEY ( `ID` )
) ENGINE = InnoDB ;
 
 
CREATE TABLE `db`.`Rezepte` (
`ID` INT NOT NULL ,
`Name` VARCHAR( 100 ) NOT NULL ,
`Typ` VARCHAR( 20 ) NOT NULL ,
PRIMARY KEY ( `ID` )
) ENGINE = InnoDB;
 
 
CREATE TABLE `db`.`Zutaten` (
`Zutat_ID` INT NOT NULL ,
`Rezept_ID` INT NOT NULL ,
`Menge` VARCHAR( 50 ) NOT NULL ,
INDEX ( `Zutat_ID`,`Rezept_ID` ),
FOREIGN KEY (`Rezept_ID`) REFERENCES Rezepte (ID),
FOREIGN KEY (`Zutat_ID`) REFERENCES Naehrwerte (ID)
) ENGINE = InnoDB ;
 
INSERT INTO `db`.`Rezepte` (`ID`, `Name`, `Typ`) VALUES ('1', 'Palatschinken', 'Vegetarisch'), ('2', 'Tomatensuppe', 'Vegetarisch'), ('3', 'Rindschinkenscheiben', 'Karnivore'), ('4', 'Veganes Haehnchen mit Reis', 'Vegan');
 
 
INSERT INTO `db`.`Naehrwerte` (`ID`, `Name`, `Kcal`, `Eiweis`,
`Kohlenhydrate`, `Fett`) VALUES
('1', 'Ei', '1', '1', '1', '1'),
('2', 'Mehl', '1', '1', '1', '1'),
('3', 'Zucker', '1', '1', '1', '1'),
('4', 'Milch', '1', '1','1', '1'),
('5', 'Rinderbrust', '1', '1', '1', '1'),
('6', 'Salz', '1', '1', '1', '1'),
('7', 'Pfeffer', '1', '1', '1', '1'),
('8', 'Zwiebel', '1', '1', '1', '1'),
('9', 'Knoblauch', '1', '1', '1', '1'),
('10', 'Tomatenmark', '1', '1', '1', '1'),
('11', 'Gemüsebrühe', '1', '1', '1', '1'),
('12', 'Reis', '1', '1', '1', '1'),
('13', 'Tomaten', '1', '1', '1', '1'),
('14', 'Sahne', '1', '1', '1', '1');
 
INSERT INTO `db`.`Zutaten` (`Zutat_ID`, `Rezept_ID`, `Menge`) VALUES ('12','4', '1 Kilo'), ('9', '4', '2 Zehen'), ('6', '4', '10 Gramm'), ('8', '2','1 Stueck'), ('13', '2', '6 Stueck'), ('9', '2', '1 Zehe'), ('10', '2', '10Gramm'), ('11', '2', '1 Liter'), ('14', '2', '50 Mililiter'), ('5', '3','1 Kilo'), ('6', '3', '25 Gramm'), ('7', '3', '5 Gramm'), ('3', '3', '2Gramm'), ('2', '1', '40 Gramm'), ('3', '1', '10 Gramm'), ('4', '1', '100Mililiter'),  ('1', '1', '1');
 
Werbung:

PLSQL_SQL

Datenbank-Guru
Beiträge
176
Hy,

entweder bin ich blind oder dir fehlt die Beziehung zwischen Zutaten und Nährwerte, damit du ermitteln kannst, welche Zutat welche Nährwerte hat....

Lg
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.394
Eine Zwischentabelle ist ja vorhanden.
Code:
SELECT    r.Name,
        r.Typ,
        n.Name,
        z.Menge,
        n.Kcal,
        n.Eiweis,
        n.Kohlenhydrate,
        n.Fett
FROM    Rezepte r,
        Zutaten z,
        Naehrwerte n
WHERE    r.ID = z.Rezept_ID
AND        z.Zutat_ID = n.ID
Damit sollte sich alles abbilden lassen.
 
Oben