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,这更合适,因为它将使用单个查询。
我是 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,这更合适,因为它将使用单个查询。