我觉得很愚蠢,但我找不到答案。
如果我有一个具有许多属性的用户,给定一个属性列表,我可以问这样的东西:
$q.when(remoteCall).then(...)
使用适当的连接或包含或其他。
但是,我不知道如何找到这些用户的逆集。也就是说,给定100个用户,如果结果返回75个条目,我不知道如何找到其他25个用户!
我想
User.where("attributes.id IN ?", list_of_attribute_ids)
可能有用(类似地,User.where.not),但它没有!相反,它会查找其任何属性不属于列表的用户,这很有用,但不是我想要的。
我知道怎么做的唯一方法就是:
User.where("attributes.id NOT IN ?", list_of_attribute_ids)
这有点像id不在的select用户的SQL(收集id列表)。
但这是大规模不具备性能,并且通常无法应对具有多个(百)条目的数据库。
你是怎么做到的?
答案 0 :(得分:0)
我认为你可以使用左外连接,比如评论中提到的@Vishal。
请参阅指南:http://guides.rubyonrails.org/active_record_querying.html#left-outer-joins
rails 4:
joins("LEFT OUTER JOIN <something>")
rails 5:
left_outer_joins(:something)