Нужен запрос ruby ​​on rails для этого запроса sql -> - PullRequest
1 голос
/ 17 июля 2011
SELECT posts.title, comment_count.count FROM posts 
       INNER JOIN (SELECT post_id, COUNT(*) AS count FROM comments GROUP BY post_id) 
       AS comment_count ON comment_count.post_id = posts.id  
       ORDER BY count DESC LIMIT 5;

или

SELECT posts.title, comment_count.count FROM posts 
       JOIN (SELECT post_id, COUNT(*) AS count FROM comments GROUP BY post_id)
       AS comment_count ON comment_count.post_id = posts.id  
       ORDER BY count DESC LIMIT 5;

1 Ответ

1 голос
/ 18 июля 2011

В этом случае вам, вероятно, лучше обходить ActiveRecord и просто вызывать этот запрос через ваш родной драйвер и возвращать только массив или хэш.

sql = <<-SQL
SELECT posts.title, comment_count.count FROM posts 
       INNER JOIN (SELECT post_id, COUNT(*) AS count FROM comments GROUP BY post_id) 
       AS comment_count ON comment_count.post_id = posts.id  
       ORDER BY count DESC LIMIT 5;
SQL
posts = Post.connection.select_rows(sql)

posts теперь массив хэшей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...