J'ai beaucoup de problèmes avec la dernière requête dont j'ai besoin et je pense que c'est un niveau hors de ma ligue donc toute aide est appréciée.Problèmes SQL Query existent
Les tableaux:
CREATE TABLE Recipe
(
nrecipe integer,
name varchar(255),
primary key (nrecipe)
);
CREATE TABLE Food
(
designation varchar(255) unique,
quantity integer,
primary key (designation)
);
CREATE TABLE Contains
(
nrecipe integer,
designation varchar(255),
quantity integer,
primary key (nrecipe, designation),
foreign key (nrecipe) references Recepie (nrecipe),
foreign key (designation) references Food (designation)
);
Quantity
dans le tableau Food
est la quantité stocker dans l'entrepôt.
Quantity
en Contains
est la quantité nécessaire d'un élément alimentaire à utiliser dans la recette.
Quantity
dans Food
et Contains
diffèrent les uns des autres.
La requête:
Je veux connaître les noms de toutes les recettes qui sont possibles à faire avec la nourriture stockée dans l'entrepôt.
Il faut que la quantité de chaque élément de nourriture dans l'entrepôt soit plus grande que la quantité nécessaire pour la recette.
EDIT: aussi, il ne devrait pas afficher le nom d'une recette s'il n'y a rien qui s'y rapporte sur le tableau Contains
.
Pour le rendre plus facile à comprendre, je vais vous donner quelques données:
INSERT INTO Recipe VALUES ('01', 'Steak with potatos and water');
INSERT INTO Recipe VALUES ('02', 'Rice and ice tea');
INSERT INTO Recipe VALUES ('03', 'Potatos and shrimp');
INSERT INTO Recipe VALUES ('04', 'Water');
INSERT INTO Recipe VALUES ('05', 'Steak with rice');
INSERT INTO Recipe VALUES ('06', 'Steak with spaguetti');
INSERT INTO Recipe VALUES ('07', 'Potatos with rice');
INSERT INTO Food VALUES ('Water', 5);
INSERT INTO Food VALUES ('Ice tea', 10);
INSERT INTO Food VALUES ('Steak', 30);
INSERT INTO Food VALUES ('Potatos', 20);
INSERT INTO Food VALUES ('Rice', 50);
INSERT INTO Food VALUES ('Shrimp', 5);
INSERT INTO Food VALUES ('Spaguetti', 5);
INSERT INTO Contains VALUES ('01', 'Steak', 1);
INSERT INTO Contains VALUES ('01', 'Potatos', 15);
INSERT INTO Contains VALUES ('01', 'Water', 10);
INSERT INTO Contains VALUES ('02', 'Rice', 5);
INSERT INTO Contains VALUES ('02', 'Ice tea', 8);
INSERT INTO Contains VALUES ('03', 'Potatos', 1);
INSERT INTO Contains VALUES ('03', 'Shrimp', 10);
INSERT INTO Contains VALUES ('04', 'Water', 20);
INSERT INTO Contains VALUES ('05', 'Steak', 1);
INSERT INTO Contains VALUES ('05', 'Rice', 20);
INSERT INTO Contains VALUES ('06', 'Steak', 1);
INSERT INTO Contains VALUES ('06', 'Spaguetti', 10);
Le résultat attendu de la requête est:
Rice and ice tea
Steak with rice
Puisque ce sont les deux seules recettes avec quantité suffisante dans entrepôt.
EDIT: les pommes de terre avec du riz ne doit pas apparaître comme une recette mais pas dans la liste contient
Merci pour l'entrée et le temps. Toute aide est la bienvenue :)
Veuillez poster le code que vous avez écrit jusqu'ici. Les gens n'aiment généralement pas écrire votre code pour vous. –
Aussi dans quelle base de données est-ce que la façon de le faire peut différer légèrement en fonction de l'environnement. – Payload
@ Mitch j'étais BASCULEMENT avec toute clause, mais se perdre dans les clauses imbriquées:/ @Payload Il est un ami qui m'a demandé de le faire et il est juste pour elle de garder une trace des recettes qu'elle peut faire avec le contenu de sa cuisine. Elle a une salle de stockage abusive lol – Martin