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