2012-12-30 61 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)將被推入到集合中每個對象的屬性中。相當醜陋,但有時候它可能比替代品更漂亮。