如何将范围与子查询或find_by_sql链接或组合

gen*_*abs 1 mysql scope subquery chaining ruby-on-rails-3

我想执行一个类似的查询

SELECT * FROM ( SELECT * FROM products ORDER BY price ASC ) AS s GROUP BY item;
Run Code Online (Sandbox Code Playgroud)

返回每个项目所有产品中最便宜的.使用此子查询很好,因为它可以在O(N logN)时间内运行.

所以我可以用find_by_sql找到它,但是能够将它与Product的其他范围链接会很好.

任何人都知道如何将其写为范围或链作用域和find_by_sql?

sim*_*nwh 6

你应该能够做类似的事情

Product.from("(SELECT * FROM products ORDER BY price ASC) AS products").group(:item)
Run Code Online (Sandbox Code Playgroud)