Bonjour à tous !
J'aurais besoin d'aide en ce qui concerne des requêtes SQL, ça fait un bout de temps que je n'en ai pas fait et je suis un peu rouillé.
Mon problème est le suivant :
À l'aide d'une requête SQL, il faut que je sélectionne toutes les recettes sauf celles dont 2 utilisateurs ou plus sont allergiques. J'ai réussi à trouver une requête qui pourrait correspondre, mais j'ai besoin de savoir si elle est valide.
De plus, elle contient 2 requêtes imbriquées, ce qui risque d'augmenter le temps de réponse (et il faudrait que je puisse l'utiliser plusieurs fois). Est-ce que quelqu'un aurait une réponse moins coûteuse ?
Recettes (id_recette, nom)
Presente (id_recette, id_allergene)
Allergenes (id_allergene, nom)
Est_allergique_a (id_allergene, id_utilisateur)
Utilisateur (id_utilisateur, nom, prenom)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 -- Sélectionner les recettes ne contenant pas d'allergènes susceptibles de gêner 2 convives ou plus SELECT id_recette FROM Recettes WHERE id_recettes <> (SELECT R.id_recette -- Sélectionner les recettes possédant ces allergènes FROM Recettes AS R JOIN Presente AS P ON P.id_recette = R.id_recette WHERE P.id_allergene IN (SELECT id_allergene -- Sélectionner les allergènes gênant plus de 2 convives FROM Est_allergique_a WHERE id_utilisateur IN (id_user1, id_user2, ...) GROUP BY id_allergene HAVING COUNT(id_allergene) >= 2))
Pour tous ceux qui accepterons de me donner un coup de main : merci d'avance!
Partager