sql - 饮料数据库设计

标签 sql database

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

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

我想做的是给出可用成分 id 的列表 - 1(朗姆酒)、2(可乐)和 3(伏特加)我想列出可以制作的饮料。所以我可以制作朗姆酒和可乐,但不能制作 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/

相关文章:

database - 健忘症患者的 "first"功能语言? (我真的很喜欢 Clojure...)

database - Yii2 在链关系的最后一个添加条件

mysql - 如何将 GROUP BY 与 HAVING 一起使用?

mysql - SQL查询突然显示重复结果

asp.net -/reports如何重定向到SQL Server报告页面

php - MySQL:在更新期间添加数字

mysql - SQL 更新带有Where 子句的左连接

mysql - 使用 MySQL fork 值基础桶和计数

SQL 性能(替换)

css - 动态数据库驱动的 CSS 2.0