ActiveRecord 6.1.3.2での結果。
def find_productions(idol_type)
Production.where(id: Idol.distinct(:production_id).where(type: idol_type))
end
SELECT * FROM production WHERE id IN (SELECT DISTINCT id FROM idol WHERE type = ?)
このようになってしまうので .select(:production_id)
が必要だった。
def find_productions(idol_type)
Production.where(id: Idol.select(:production_id).distinct(:production_id).where(type: idol_type))
end
SELECT * FROM production WHERE id IN (SELECT DISTINCT production_id FROM idol WHERE type = ?)