2011-10-14 68 views
1

搜索了一段時間後,我找到了SQL查詢,它提供了我正在查找的結果。將SQL查詢翻譯成Rails

select * from (select * from services WHERE user_id=1 ORDER BY created_at DESC) AS x GROUP BY servicename

所以用戶有不同的servicenames和servicetimes許多服務。 即。服務可以在不同的服務時間內多次出現在列表中。 我想要的是獲取服務的最新服務時間,即服務A,服務B和服務C,但只有最新的記錄。

現在我需要將這個查詢導入到rails中,最好進入到範圍中,以便我可以再次調用它。最佳做法是什麼?即我無法找到一個解決方案如何讓內部選擇工作在鐵軌。

我已經做了一些搜索,但無法找到類似的問題。

感謝您的幫助

+0

我可能是錯的,但也許你可以將它建模爲一個自我JOIN?那麼你可以找到很多關於如何做範圍的例子,包括連接 – riffraff

回答

0

SELECT * FROM(SELECT從服務GROUP BY服務名MAX(created_at)爲的maxDate,(其它coloumn名))R INNER JOIN服務T ON t.servicename = r.servicename和USER_ID = 1;

我認爲這將檢索最新的記錄,即具有最新服務時間的服務。