gpt4 book ai didi

mysql - SQL 'IN' 和 'NOT IN' 在一起

转载 作者:行者123 更新时间:2023-11-30 22:54:44 25 4
gpt4 key购买 nike

我在 2 个模型 Dish 和 Ingredient 之间有一个 HABTM 关系。我想找到所有包含一些成分但不包含其他成分的菜肴。

这是我做的:

likes = [1,2,3] # id of ingredients i like
dislikes = [6,7] # id of ingredients i don't like

@dishes = Dish.joins(:ingredients).where("ingredients.id IN (?) AND ingredients.id NOT IN (?)",likes,dislikes).group("dishes.id")

这没有返回所需的结果,我找不到使用 SQL 查询执行此操作的方法。有什么线索吗?

最佳答案

这是我找到的解决方法,不知道是否有更简单的方法。

right = Dish.joins(:ingredients).where("ingredients.id IN (#{likes})").group("dishes.id")
not_right = Dish.joins(:ingredients).where("ingredients.id IN (#{dislikes})").group("dishes.id")
@dishes = right - not_right

关于mysql - SQL 'IN' 和 'NOT IN' 在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26915198/

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