2012-03-08 30 views
2

我有2個表Kohana的ORM頂級用戶

的用戶和評論

的評論與用戶

嘗試使用ORM獲得頂級用戶想辦法多對一的關係根據意見量

有什麼建議嗎?

回答

5

您的查詢應該是這樣的:

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(); 
+0

謝謝你這麼多,你真棒 – user1019144 2012-03-09 05:46:30

+0

只是檢查,是不是這一點,只有老用戶註釋?例如。如果用戶有零評論,它不會成爲記錄集的一部分? – Luke 2013-02-17 23:25:45