2015-09-05 95 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