2015-09-05 49 views
0

重复的记录我有一个模型的Rails找到以最低的价格

模型具有1场

  • 号码价格
  • 价格

数量可以相同。 我想要显示所有Model-1记录,但是如果有两个或更多记录具有相同编号,我希望它只显示最低价格的记录。

我将如何在Controller中编写查询。 请不要用条件来提示我。

+0

什么是您的DBMS? –

+0

我正在使用postgresql。 –

回答

1

首先,让我们在SQL中思考这个问题。那个查询会是什么样子?

如果你想要最低的具体价值,那么你会创建一个询问价格,并按数量,然后定价的查询。

SELECT * 
FROM model-1 
WHERE number = :number 
ORDER BY number ASC, price ASC 
LIMIT 1; 

这将确保您的条目顺序首先由数排序,然后按最低价格(ASC为升序,所以从1到10)。然后你只能得到你关心的一个元素。

在Rails中,如果您使用的是ActiveRecord,那么可能如下所示。

model = Model1.find_by(number: 123).order('number ASC, price ASC').limit(1) 
+0

Thaks为您提供帮助。 请参阅我编辑的问题。我希望你能帮助我。 –

+0

我将恢复编辑,因为这是您的问题的根本性变化,因此使此答案无效。如果您有其他问题,请提出其他问题。 – Makoto