2013-06-27 56 views

回答

3

一個更好的辦法可能是使用API​​編寫子查詢:

subquery = Comment.select("user_id"). 
        group(:user_id). 
        having("COUNT(*) >= 3").to_sql 
User.where("id IN (#{subquery})") 
+0

真好看並且清楚。很好的答案! –

0

SQL這樣的:

SELECT users.* FROM users 
WHERE EXISTS (SELECT id FROM comments WHERE user_id = users.id GROUP BY user_id HAVING COUNT(*) >= 3) 

其中在ActiveRecord的符號轉換爲:

User.where('EXISTS (SELECT id FROM comments WHERE user_id = users.id GROUP BY user_id HAVING COUNT(*) >= 3)') 
相關問題