One query with Select In
Today I learned that if you pass an ActiveRecord::Relation
as param to where
Rails will create a single query using IN
and an inner SELECT
:
Repository.where(user_id: User.active.select(:id))
=> Repository Load (1.1ms)
SELECT "repositories".*
FROM "repositories"
WHERE "repositories"."user_id" IN (
SELECT "users"."id"
FROM "users"
WHERE "users"."status" == 1
)
h/t @mattpolito
Tweet