【发布时间】:2019-11-27 12:15:06
【问题描述】:
我正在尝试将以下 SQL 转换为 Rails 活动记录查询
"SELECT * FROM stocks
INNER JOIN
(
SELECT product_id, MIN(ask_price) min_price
FROM stocks
GROUP BY product_id,size
) sub ON stocks.product_id = sub.product_id AND
stocks.ask_price = sub.min_price
where stocks.product_id = 1"
此查询按产品和产品尺寸获取库存组的最低价格。
到目前为止,我都尝试过这样翻译它是不对的。
sub_query = Stock.select("product_id, MIN(ask_price) min_price").group(:product_id,:size)
stocks = Stock.joins("#{sub_query} stocks.product_id = sub.product_id AND
stocks.ask_price = sub.min_price")
【问题讨论】:
-
您在那里选择了大量冗余数据。一个好的提示是永远不要使用
SELECT *
标签: mysql ruby activerecord ruby-on-rails-5