带有单独查询的 ActiveRecord WHERE IN——合并为单个 INNER JOIN 查询

ActiveRecord WHERE IN with a separate query—combine to a single INNER JOIN query

我目前有一个非常复杂的查询(简化)如下所示:

User.where(party_id: [Party.cool_parties.pluck(:id)])

效果很好,但使用 2 个单独的查询访问数据库。我只是想知道如何将它组合成一个查询?以某种方式与临时 table 进行某种内部连接?我不确定如何使用 Rails...

User.where(party_id: Party.cool_parties)

只需传递 assocation/relation ActiveRecord 就会构造一个子查询。

pluck 只应在您实际想要强制查询将数据加载为数组的情况下使用 - 这比您想象的要少得多。