kohana orm топ пользователь - PullRequest
2 голосов
/ 08 марта 2012

у меня 2 таблицы

Пользователи и комментарии

Комментарии имеют много-к-одному отношения с пользователями

Попытка придумать, как с помощью ORM получить топ-пользователей по количеству комментариев

Есть предложения?

1 Ответ

5 голосов
/ 09 марта 2012

Ваш запрос должен выглядеть следующим образом:

SELECT users.username, COUNT(comments.id) AS total 
FROM users 
INNER JOIN comments 
ON users.id = comments.user_id 
GROUP BY users.username 
ORDER BY COUNT(comments.id) DESC

Переведено в ORM:

ORM::factory('user')
   ->select('user.username', array('COUNT("comments.id")', 'total'))
   ->join('comments', 'INNER')
   ->on('user.id', '=', 'comments.user_id')
   ->group_by('user.username')
   ->order_by('total', 'DESC')
   ->find_all();
...