我正在尝试使用ActiveRecord进行下一个查询,并且不知道如何实现此SQL结果而不使用find_by_sql
调用。ActiveRecord与嵌套表查询
SELECT *
FROM table_x AS a,
(SELECT locator, max(day_parsed) AS max_day
FROM table_x
WHERE day_parsed BETWEEN params[:day_from] AND params[:day_to]
GROUP BY locator) AS b
WHERE a.locator = b.locator
AND a.day_parsed = b.max_day
任何想法?
出了什么问题'find_by_sql'?为什么要将可读的SQL查询转换为不可读的'ActiveRecord'代码? –
'find_by_sql'返回'Hash'。理想情况下,我想创建一个基于此结果的ActiveRecord模型。我试着用postgresql视图,但因为我需要使用数据库视图丢弃的日期范围参数。什么是错误的是,我不能使用active_record关联 –
例如,我想使用基于此结果的范围。 –