0
我有以下類別:軌,發現Postgres數據庫重複條目
class Product < ActiveRecord::Base
has_one :total_purchase
end
class TotalPurchase < ActiveRecord::Base
belongs_to :product
end
我的表有以下欄目(我省略了大部分的清晰度):
Product
id | title | end_date | price | discount
TotalPurchase
id | product_id | amount
衆多產品具有相同的products.title,products.end_date和totalpurchases.amount,我想在特定日期之間標識所有這些。我目前使用下面的sql查詢來識別它們:
Product.find_by_sql("select products.title, products.end_date, total_purchases.amount from products left join total_purchases on products.id = total_purchases.product_id where products.end_date > '2012-08-26 23:00:00' and productss.end_date < '2012-09-02 22:59:59' group by products.end_date, products.title, total_purchases.amount having count(*) > 1")
我如何將上面的代碼寫成rails查詢而不是使用find_by_sql?
謝謝,但我得到的運行查詢的以下錯誤:列「products.id」必須出現在GROUP BY子句或聚合函數 – shane
@shane已答覆修訂中使用,但請注意,這裏假設你的產品都具有唯一的ID,並且這與您所做的相同(即,給定的products.title和products.end_date組合是唯一的) – MrTheWalrus
查詢現在不僅僅查找帶有ID的產品發生不止一次?由於產品ID對於所有條目都是唯一的,因此它不會定位重複的end_date,title和amount。謝謝你的語法,我會多挖一些 – shane