在 MySql 上以多对多关系找到一个完全包含提供的(另一个实体的)id 列表的实体?
Find an entity that exactly containing a list of provided id (of the other entity) in a many-to-many relation on MySql?
我有 3 个表:
- 食谱 (id, name)
- Recipes_Ingredients(id, fk_recipe, fk_ingredient, 数量)
- 成分(身份证,姓名)
我需要找到所有完全包含提供的成分 ID 列表的食谱。
Es:
我提供了一个成分列表,如 111(盐)、222(胡椒)、333(油),我需要找到所有含有 只有这些成分。
因此,如果食谱包含这些成分(我提供的 id 列表)+ 其他成分,则不必显示
提前致谢!
SELECT fk_recipe
FROM Recipes_Ingredients
GROUP BY fk_recipe
HAVING SUM(fk_ingredient IN (111,222,333)) = COUNT(*)
我有 3 个表:
- 食谱 (id, name)
- Recipes_Ingredients(id, fk_recipe, fk_ingredient, 数量)
- 成分(身份证,姓名)
我需要找到所有完全包含提供的成分 ID 列表的食谱。
Es:
我提供了一个成分列表,如 111(盐)、222(胡椒)、333(油),我需要找到所有含有 只有这些成分。
因此,如果食谱包含这些成分(我提供的 id 列表)+ 其他成分,则不必显示
提前致谢!
SELECT fk_recipe
FROM Recipes_Ingredients
GROUP BY fk_recipe
HAVING SUM(fk_ingredient IN (111,222,333)) = COUNT(*)