1
在我的数据库,我有以下表和关系:--has_many--<
结果Rails的 “嵌套” 联接查询
的样本被认为是“分析
检查
--has_many--<
样品'如果它有一个或多个与之相关的结果。如果对其所有样品进行分析,则视为“完整”。我需要找到所有'不完整'的检查;也就是说,所有检查至少有一个未经过分析的样本。我查询mysql数据库做,这是
SELECT DISTINCT inspections.* FROM inspections JOIN samples s ON inspections.id = s.inspection_id LEFT OUTER JOIN results r ON r.`sample_id` = s.`id` WHERE r.id IS NULL
我想在一个不错的ActiveRecord
find
调用(除了find_by_sql
)转这一点,但我不知道怎么弄将“嵌套”关联(术语?)加入语法中。任何人都可以帮我吗?顺便说一句,这是一个Rails 2.3应用程序。
现在我有
Inspection.all(:select => "distinct inspections.*", :joins => "join samples on samples.inspection_id = inspections.id " + "left join results on results.sample_id = samples.id", :conditions => "results.id is null")
它的工作原理,但看起来还是未精制的和太近整个SQL语句。有没有比这更清洁的东西?
不完全。如果我包含':conditions =>“results.id为null”'来匹配SQL查询,它几乎可以工作,但它包括没有样本的检查。我需要排除这些。 – istrasci