我有一个名为Shop
的模型有很多Products
。
我正在尝试根据商店的苹果,橘子和芒果的数量,一次分类和展示10家商店。
每家商店的苹果比橘子多,橘子多于芒果。商店将从具有最多苹果的商店开始分类。
编写此查询的最有效方法是什么?
谢谢!
答案 0 :(得分:0)
您的问题缺乏信息,因此我将假设以下表格:
------------- -----------------------------------------------------------
| Shop | | Stock |
------------- -----------------------------------------------------------
| id | name | | id | shop_id | apple_count | orange_count | mango_count |
------------- -----------------------------------------------------------
基本上,你要求的是 rails way 来做到这一点:
select shop.name
,apple_count
,orange_count
,mango_count
from current_stock
inner join shop on current_stock.shop_id = shop.shop_id
order by apple_count desc
,orange_count desc
,mango_count desc
limit 10
您可以通过执行以下操作来实现此目的:
Shop.joins(:stocks).order("apple_count desc, orange_count desc, mango_count desc").limit(10)
希望这有帮助!