2012-12-30 35 views
1

我在MySQL这个查询,我需要将其转换为轨道活动记录:转换只是MySQL查询轨活动记录

select p.*,x.* from 
(select * from users ,roles_users 
where users.id=roles_users.user_id and roles_users.role_id not in(2,3)) as P 
left join 
(select * 
    from cad_dispaths as T 
where `startdate_dispatch` = 
     (select max(`startdate_dispatch`) 
      from cad_dispaths 
      where users_id = T.users_id)) x 
on x.users_id = p.user_id  
+0

有没有理由不能使用find_by_sql? – tehgeekmeister

+0

idk whats find_by_sql。我想这就是我想要的...顺便说一句,我可能需要轨道分页 –

+0

作出正确的答案,等一下。 – tehgeekmeister

回答

2

我认为在这种情况下,最好的解决办法是使用find_by_sql。一个重要的警告是,它被设计用于一次提取一种东西。我不知道你的应用程序的语义,所以我不能说这是否是这个查询正在做什么,但它似乎可能不是。

例如,你可以这样做:

User.find_by_sql(your_sql)

这将返回满足该查询用户对象的集合。任何额外的数据,我最后一次尝试像这样的东西(rails 2.3.x)将被推入到集合中每个对象的属性中。相当丑陋,但有时候它可能比替代品更漂亮。