我正在尝试设计一个饮料数据库,需要一些设计方面的帮助。

我创建了以下表格:一个成分表,列出了所有可能的成分(即朗姆酒、可乐、伏特加和橙汁)。一个饮料表,其中列出了所有可能的饮料(即“朗姆酒和可乐”、“ Screwdriver ”)。最后,食谱表描述了如何制作饮料,因此对于“朗姆酒和可乐”,有两个完整的内容,一个带有朗姆酒的成分 ID,另一个带有可乐的成分 ID,两者都带有指向相同饮料 ID 的外键。

我想要做的是给出一份可用成分列表 id - 1(朗姆酒)、2(可乐)和 3(伏特加)我想列出一份可以制作的饮料 list 。所以我可以做朗姆酒和可乐,但不能做 Screwdriver ,因为我没有橙汁。

关于如何编写这样的选择语句或如何更好地设计表格的任何建议?

谢谢

最佳答案

SELECT *
FROM (
SELECT coktail_id,count(ingredient_id) as nb_ingredient
FROM coktail_ingredient
WHERE ingredient_id IN (1,2,3) --where 1 is rhum , 2 is vodka and 3 is coke
group by coktail_id
)
where  nb_ingredient = 3--3 for the number of ingredient you need

是我使用的技术。

关于sql - 饮料数据库设计,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8636456/

10-12 02:39