我试图理解mysql外部参照表和外键结构。
我有三张表,结构如下:;
餐桌上的食物
| id | name |
| 1 | apple_pie |
| 2 | pumpkin_pie |
表1配料
| id | name |
| 1 | apple |
| 2 | pumpkin |
| 3 | milk |
| 4 | flour |
| 5 | soy_milk |
餐桌食品配料
| food_id | ingredient_id |
| 1 | 1 |
| 1 | 3 |
| 1 | 4 |
| 2 | 2 |
| 2 | 3 |
我知道如何从表中得到配料食物配料得到所有配料苹果馅饼,应该是下面的代码
SELECT ingredient_id FROM table_food_ingredient WHERE food_id = 1;
但我想不出我是怎么从所有的配料中得到食物的。
例如,如果我选择配料id为1、3、4,我想得到食物id,而配料id应该只有1(苹果派)
2条答案
按热度按时间flmtquvp1#
试试这个
bihw5rsg2#
首先,如果我理解正确的话,我们必须根据配料恢复食物的数量。
有什么问题?
我们想检索一个结果,但表中包含多行单个id。
所以我们不能用简单的
SELECT .. WHERE
.解决方案
解决方案的一个开始是在此链接中选择具有多个条件的所有行。
你可以通过使用
WHERE
,GROUP BY
.