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)
)