我有一個簡單的查詢需求:查找自2013年1月1日以來訂購的用戶列表。如何使活動記錄連接返回唯一對象?
在SQL中,這是一個非常簡單的查詢。
但我使用的是Rails和Active Record。
所以我寫了:User.joins(:orders).where("orders.created_at >= '2013-01-01 00:00:00'")
在我們的數據庫,我們必須通過75個用戶自2013年1月1日取得100個訂單。 (有些用戶明顯地做出了多個訂單)。
但是,上述表達式返回100個用戶。 (必須有重複。)
我試圖User.joins(:orders).where("orders.created_at >= '2013-01-01 00:00:00'").uniq
,不能正常工作。
如何獲得自2013年1月1日以來訂購的75位用戶?
如果你試圖鏈'選擇( 「DISTINCT(users.id)」)'或'組(「users.id」)' – 2013-03-05 17:53:00
您在'User'和'Order'模型中定義了關係嗎?沒有必要使用原生sql – ant 2013-03-05 17:58:50
是的,我在User和Order模型之間建立了關係。 – 2013-03-05 18:03:03