IN 使用 Rails 中的对象列表进行查询

IN Query by using List of Object in Rails

我是 rails 的新手,我试着做一个查询让我们假设。

表 1(id​​,subjectId)
表 2(id,subjectId)

现在我有一个对象中的 Table2 对象列表。现在我想从 Table1 中找到所有对象,其主题 ID 与 Table2 对象列表中的匹配。类似 IN Query of Postgres

我用了LessonPlanStatus.where(subject_id:@teacher.map(&:subject_id))

您应该开始阅读 ActiveRecord Query guide

Table1.where("subject_id IN (?)", Table2.all.pluck(:subject_id))

您也可以传递一个数组,ActiveRecord 将为您使用一个 IN

Table1.where(subject_id: Table2.all.pluck(:subject_id))

您也可以使用 JOIN,这更合适,因为它将使用单个查询。