我找到了使用以下条件从数据库中获取行的最佳实践解决方案:
2012 年的最后一行
从 2013 年开始的所有行
和 2014 年的第一行
这可以通过 Rails 中的一个查询来解决吗?
我不知道如何通过一个查询来做到这一点,但只使用 3 个查询。
谢谢。
最佳答案
这是一种方法。我并不是说它是最好的或 super 优化的,这取决于您的数据和索引。
@measurements = Measurement.find_by_sql(
%{select * from measurements
where date_part('year', date) = 2013
or date = (select max(date) from rounds where date_part('year', date) = 2012)
or date = (select min(date) from rounds where date_part('year', date) = 2014)
order by date})
编辑:我看到你正在使用 sqlite,这适用于 Postgres,但应该很容易移植。
关于sql - 使用 Rails(ActiveRecord) 查询 2012 年的最后一行 + 2013 年的所有行 + 2014 年的第一行 - 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23521219/