Ruby on rails Rails查询与WHERE NOT连接';不行?
正在尝试找出此查询不起作用的原因:Ruby on rails Rails查询与WHERE NOT连接';不行?,ruby-on-rails,Ruby On Rails,正在尝试找出此查询不起作用的原因: @items = Item.joins(:assignments).where.not(assignments: {shop_id: some_id}) 我想获取与某些店铺id没有分配关联的所有项目 奇怪的是,考虑到此查询将起作用,它不起作用(仅显示具有分配关联的项目以及一些店铺id): 您必须学习如何使用SQL 您获得所有项目仅仅是因为分配s与“good”shop\u id也存在。所以,Rails做得很好 您需要的查询应如下所示: Item.where.n
@items = Item.joins(:assignments).where.not(assignments: {shop_id: some_id})
我想获取与某些店铺id没有分配关联的所有项目
奇怪的是,考虑到此查询将起作用,它不起作用(仅显示具有分配关联的项目以及一些店铺id):
您必须学习如何使用SQL
您获得所有项目
仅仅是因为分配
s与“good”shop\u id
也存在。所以,Rails做得很好
您需要的查询应如下所示:
Item.where.not(
id: Assignment.where(shop_id: some_id).select(:item_id)
)
使用
而不是时是否出现错误?或者只是得到空结果?有错误吗?你的Rails版本是什么?@MoamenNaanou我得到了一个结果items@SebastianPalma无错误,返回所有项目。Rails 5.1.5两个版本返回的sql查询是什么?您的答案似乎不起作用。我仍在获取带有shop\u id的任务的物品。请提供任务的准确结果。where(shop\u id:some\u id)。Pull(:item\u id)
Item.where.not(
id: Assignment.where(shop_id: some_id).select(:item_id)
)