gpt4 book ai didi

mysql - 有无 SQL 查询

转载 作者:行者123 更新时间:2023-11-30 22:58:40 24 4
gpt4 key购买 nike

我有两个表如下:

表:配方

字段:recipe_IDtitle


表:recipe_ingredient

字段:recipe_IDingredient_ID


我只想显示包含某些成分的食谱(我设法做到了那部分),但是我也想排除包含某些成分的食谱。

到目前为止,我设法完成了这个查询,它正在运行,但它只显示包含某些成分的食谱。

SELECT DISTINCT r.recipe_ID, r.title 
FROM recipe r
JOIN recipe_ingredient ri ON (ri.recipe_ID = r.recipe_ID)
WHERE ri.ingredient_ID IN (4, 7)
GROUP BY r.recipe_ID
HAVING COUNT(ri.ingredient_ID) = 2

如何让它也排除含有某些成分的食谱?我尝试了一些方法但我失败了。

注意:出于演示目的,4、7 和 Count 值是静态的。

请询问您是否需要更多信息或其他信息。

非常感谢!

最佳答案

您可以使用子查询来获取任何包含您想要的成分的recipe_ID,然后排除那些recipe_ID主要查询:

SELECT r.recipe_ID, r.title 
FROM recipe r
JOIN recipe_ingredient ri ON ri.recipe_ID = r.recipe_ID
WHERE ri.ingredient_ID IN (4, 7)
AND r.recipe_ID NOT IN
(
SELECT rs.recipe_ID
FROM recipe rs
JOIN recipe_ingredient ris ON ris.recipe_ID = rs.recipe_ID
WHERE ris.ingredient_ID IN (8, 2)
)
GROUP BY r.recipe_ID
HAVING COUNT(ri.ingredient_ID) = 2

关于mysql - 有无 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25080942/

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