2016-06-21 32 views
0

我們有User型號表:一個屬性的最大值選擇記錄範圍限制在軌道上的其他屬性

group_id|posts|... 
1  |5 |... 
1  |20 |... 
2  |7 |... 
1  |15 |... 
3  |10 |... 
3  |12 |... 

而且我們有Group模型,has_many :users

我想選擇GroupUser的帖子範圍最高,範圍爲group_id

到只有一個User加入進來是很重要的,因爲後來我在UserGroup建設WhereChain其過濾收集基於兩者。

感謝

+0

'User.order(帖子:DESC).first.group'(一個最大'posts'值的情況)? – potashin

+0

我需要收集'Group',而不僅僅是一個。 –

回答

2
posts = User.group(:group_id).maximum(:posts) 
Group.joins(:users).where(users: {posts: posts.values}) 
+3

這個答案被系統標記爲低質量 - 看看其他答案給出,你會看到高質量的答案給更多的上下文和解釋。添加一個解釋爲什麼以及如何工作會大大改善它。 – rrauenza

+0

這看起來不錯。 –

+0

啊,如果'posts'對兩個不同的用戶有兩個相同的值,它會找到它們兩個。 –

相關問題