gpt4 book ai didi

MySQL 在一列中返回具有多个值的行?

转载 作者:行者123 更新时间:2023-11-29 04:10:02 24 4
gpt4 key购买 nike

这是我的场景:我有一个包含食谱的表,另一个包含与食谱相关联的成分 (recipe_ingredients)。

表 RECIPE_INGREDIENTS:

ID      RECIPE_ID     INGREDIENT_ID
1 1 6
2 2 3
3 2 4

在我的例子中,我想返回所有含有用户介绍的一些成分(可以是一种或多种)的食谱,在这个例子中,假设所有含有成分 3 和 4 的食谱。很明显,当我只查询一种成分时,没有问题,但我不知道如何用多个...提前谢谢大家!欢迎任何建议!

最佳答案

听起来你想要这个:

select RECIPE_ID
from RECIPE_INGREDIENTS
where INGREDIENT_ID in (3, 4)
group by RECIPE_ID
having count(distinct INGREDIENT_ID ) >=2

参见 SQL Fiddle with Demo

然后如果你想把这个加入你的食谱表:

select r.*
from recipes r
inner join
(
select RECIPE_ID
from RECIPE_INGREDIENTS
where INGREDIENT_ID in (3, 4)
group by RECIPE_ID
having count(distinct INGREDIENT_ID ) >=2
) ri
on r.RECIPE_ID = ri.RECIPE_ID

关于MySQL 在一列中返回具有多个值的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14244274/

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