Macie może pomysł jak wyciągnąć kilku [np. 3] najaktywniejszych użytkowników?
Przez najaktywniejszy rozumiem takiego, który napisał najwięcej postów.
Tabela użytkownicy:
- user_id
- user_nickname
Tabela komentarzy:
- comment_id
- comment_user_id
Ania 3.
Janek napisał 25 komentarzy.
Andrzej 10.
Waldemar 1.
$query = $this->db ->select('user_id, user_nickname') ->select('comment_user_id') ->order_by('comment_user_id DESC') ->join('comments', 'user_id = comment_user_id', 'left') ->get('users');
Chciałbym to zrobić za pomocą bazy, a nie mielić w php.
Dzięki.
Ok, w kiblu wpadłem na pomysł, że zrobię sobie tabelkę points gdzie będą przyznawane punkty za komentarz do użytkownika. ;P
Rozwiązanie:
$query = $this->db ->select('user_id, user_nickname') ->select('up_user_id, up_point') ->order_by('points DESC') ->select_sum('up_point', 'points') ->group_by('up_user_id') ->join('user_points', 'user_id = up_user_id') ->get('users', 3);