gpt4 book ai didi

mysql - 查询具有不同值的相同列

转载 作者:行者123 更新时间:2023-11-29 00:41:58 26 4
gpt4 key购买 nike

我只是 MySql 编程的新手,我正在创建一个项目来提高我的技能。 我有一个名为 tblRecipe 的表,其中包含列 RecipeId、RecipeName 和 Instructions。另一个表称为 tblIngredients,其中包含 IngredientId、RecipeId、IngredientName 列。

现在举例来说,RecipeOne需要IngredientOne和IngredientTwo来制作,RecipeTwo需要IngredientOne,IngredientTwo和IngredientThree来制作。我的程序要求输入 IngredientNames,所以当我输入 IngredientOne 和 IngredientTwo 时,它应该返回结果 RecipeOne。

这是我的代码

Select Recipename,Instructions 
from tblREcipe where RecipeId in
(select recipeID
from tblIngredients
where Ingredientname in('IngredientOne','IngredientTWo')
);

我知道 IN 运算符就像说匹配以下任何一项。因此,使用该代码,它给了我两个食谱。我正在寻找与 AND 的等价物。我尝试了“Ingredientname =ALL(in('IngredientOne','IngredientTwo'))”但它不返回任何行。

如果可以解决问题,我愿意接受任何更改,例如重组表格,因为这只是一个练习项目。希望尽快收到你们的来信,并提前感谢你们。

最佳答案

您还需要计算与成分数匹配的记录实例数。就像下面这个:

Select a.Recipename, 
a.Instructions
FROM tblREcipe a INNER JOIN
(
SELECT recipeID,
COUNT(IngredientId)
FROM tblIngredients
WHERE Ingredientname IN ('IngredientOne', 'IngredientTWo')
GROUP BY recipeID
HAVING COUNT(IngredientId) = 2 -- the number of ingredients
-- should somehow dynamic
) b ON a.recipeID = b.recipeID

关于mysql - 查询具有不同值的相同列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11898173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com