我有一个包含独特成分的ingredients
表:
ID INGREDIENT
1 Sugar
2 Egg
3 Vanilla
我有一个recipe
表,其中包含各种食谱:
ID RECIPE
1 Eggs Florentine
2 Hash Browns
3 Hamburger
两个表之间存在many to many
关系。因此有一个像这样的中间表:
ID INGREDIENT_ID RECIPE_ID
1 1 1
2 7 1
3 1 6
etc.
我需要写一个查询,它会告诉我食谱中每种成分的使用次数。看起来像这样:
Sugar(27), Egg(242), Vanilla(5), ...
我的感觉是我需要使用中间表,但我无法让它工作。
你能帮忙吗?
感谢。
答案 0 :(得分:1)
所以你可以使用group by功能来实现这一点:http://www.w3schools.com/sql/sql_groupby.asp
在你的情况下,你可以这样做:
Select count(ingredient_id) from recipe_ingredient_table group by ingredient_id
如果您想添加其他值,例如成分名称,您可以包含:
Select count(rit.ingredient_id),i.name
from recipe_ingredient_table rit
join ingredient i on (i.id = rit.ingredient_id)
group by rit.ingredient_id,i.name
答案 1 :(得分:1)
KLASSE DRENGE PIGER ELEVER
0A 12 11 23
1A 7 8 15
1B 4 11 15
2A 10 13 23
3A 10 12 22
4A 7 7 14
4B 10 5 15
5A 19 8 27
6A 10 9 19
6B 9 10 19
7A 7 19 26
7G 3 5 8
7I 7 3 10
8A 10 16 26
9A 12 15 27
0MO 3 2 5
0P1 1 1 2
0P2 0 5 5
10B 4 4 8
10CE 0 1 1
1MO 8 5 13
2CE 8 5 13
3DCE 3 3 6
4MO 4 1 5
6CE 3 4 7
8CE 4 4 8
9CE 4 9 13
REST 5 6 11
Alle klasser 184 202 386
答案 2 :(得分:1)
select count(1), INGREDIENT
from many_to_many
join ingredients_table it on INGREDIENT_ID =it.ID
group by INGREDIENT