很抱歉,如果这是一个奇怪的问题,或者它已经在堆栈中得到了回答......我只是想不出一种方法来解释它是什么我实际上试图做。
基本上,假设您有两个SQL表,包含两个不同的配方。
表1有:
表2有:
因此将这两个表的结果加在一起将是:
您如何将这些表格一起添加?将这些数据存储在不同的SQL表中是个好主意还是坏的?很高兴其他/更好的方式来存储数据。
任何帮助将不胜感激:)
(关于SO的第一篇文章,对不起,如果这是一个糟糕的问题)
答案 0 :(得分:2)
将这些东西存储在2个表中是一个坏主意。更好的数据库设计将是
ingredients table
-----------------
id
name
...
recipes table
--------------
id
name
description
...
units table
-----------
id
name
recipes_ingredients table
--------------------------
recipe_id
ingredient_id
amount_value
amount_unit_id
然后获取特定食谱的所有成分,你可以做到
select i.name, ri.amount_value, u.name
from recipes r
join recipes_ingredients ri on ri.recipe_id = r.id
join units u on ri.amount_unit_id = u.id
join ingredients i on ri.ingredient_id = i.id
where r.name = 'Pizza'
如果您只想获得不同的成分,那么您可以按
进行分组select i.name as ingredient,
sum(ri.amount_value) as total_amount,
u.name as unit
from recipes r
join recipes_ingredients ri on ri.recipe_id = r.id
join units u on ri.amount_unit_id = u.id
join ingredients i on ri.ingredient_id = i.id
where r.name = 'Pizza'
group by i.name, u.name