кохана орм лучший пользователь

у меня 2 стола

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

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

Попытка придумать способ использования ORM для получения лучших пользователей на основе количества комментариев.

Какие-либо предложения?


person user1019144    schedule 08.03.2012    source источник


Ответы (1)


Ваш запрос должен выглядеть так:

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::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();
person matino    schedule 08.03.2012
comment
Спасибо вам огромное, вы супер - person user1019144; 09.03.2012
comment
Просто проверяю, не возвращаются ли только пользователи, у которых есть комментарии? Например. если у пользователя нет комментариев, он не будет частью набора записей? - person Luke; 18.02.2013