2

如果我的数据库中有一个表 (table1) 的 ID 数组。有没有一种方法可以查询另一个表(table2)以选择列等于 table1 中一个 ID 的值的所有记录。

到目前为止,我的代码是:

LabQuestion.where("product_id=#{Product.where(:brand_id => brand_id).pluck(:id)}")

在这段代码中,我试图检索与某个品牌的所有产品相关联的所有实验室问题。此代码不起作用,但我试图证明我的需求。

4

2 回答 2

1

您可以使用包含而不是连接,如下所示

LabQuestion.includes(:product).where(:products => { :brand_id => brand_id })
于 2013-07-16T14:54:58.620 回答
1

假设您已经正确设置了关系,您可以使用joins连接两个表并像这样查询它们:

LabQuestion.joins(:product).where(:products => { :brand_id => brand_id })
于 2013-07-16T14:42:33.043 回答