2011-10-14 69 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;

我认为这将检索最新的记录,即具有最新服务时间的服务。