如果我的数据库中有一个表 (table1) 的 ID 数组。有没有一种方法可以查询另一个表(table2)以选择列等于 table1 中一个 ID 的值的所有记录。
到目前为止,我的代码是:
LabQuestion.where("product_id=#{Product.where(:brand_id => brand_id).pluck(:id)}")
在这段代码中,我试图检索与某个品牌的所有产品相关联的所有实验室问题。此代码不起作用,但我试图证明我的需求。
如果我的数据库中有一个表 (table1) 的 ID 数组。有没有一种方法可以查询另一个表(table2)以选择列等于 table1 中一个 ID 的值的所有记录。
到目前为止,我的代码是:
LabQuestion.where("product_id=#{Product.where(:brand_id => brand_id).pluck(:id)}")
在这段代码中,我试图检索与某个品牌的所有产品相关联的所有实验室问题。此代码不起作用,但我试图证明我的需求。
您可以使用包含而不是连接,如下所示
LabQuestion.includes(:product).where(:products => { :brand_id => brand_id })
假设您已经正确设置了关系,您可以使用joins
连接两个表并像这样查询它们:
LabQuestion.joins(:product).where(:products => { :brand_id => brand_id })