1
我正在使用rails 2.3.10和新的named_scope
。我正在處理一個SQL,它會檢索特定事件的最後一個邀請列表。我想出了一個帶子查詢的SQL,看起來它可以做我想做的事。我在考慮是否可以使用named_scope
來做同樣的事情,以便我可以使用find()
。如何將自我表子查詢SQL轉換爲Rails的named_scope?
我有以下問題:
- 是否有可能實現與
named_scope
的SQL? - 它可以在一個優雅的方式,使子選擇不包括在
:condition
?多個named_scope需要? named_scope
(s)是怎麼樣的?find()
如何包含name_scope(s)?
SQL:
SELECT *
FROM invitation inv1
JOIN (
SELECT event_id, user_id, MAX(invite_time) AS last_invite_time
FROM invitation
GROUP BY event_id, user_id
) AS last_invite ON
inv1.event_id = last_invite.event_id AND
inv1.user_id = last_invite.user_id AND
inv1.invite_time = last_invite.last_invite_time
邀請數據:
event_id user_id invite_time invite_reply_code
1 78 2011-02-01 15:21 1
2 78 2011-02-02 11:45 1
2 79 2011-02-02 11:50 1
2 79 2011-02-02 11:55 1
2 80 2011-02-02 11:50 1
2 80 2011-02-02 11:51 1
預期結果:
event_id user_id invite_time invite_reply_code
2 78 2011-02-02 11:45 1
2 79 2011-02-02 11:55 1
2 80 2011-02-02 11:51 1