@DangeonFurry

Как вывести в laravel count записей с одинаковым полем?

Доброго дня, суть вопроса такова: имеется таблица с полями book_id и user_id, каждая сущность соответствует лайку на книге, нужно посчитать сколько book_id с одинаковыми значениями (таким образом получу общее кол-во лайков на этой книге) и вывести 5 book_id с самым большим кол-вом в этой таблице, думаю объяснил понятно, если что задавайте вопросы. Прошу помочь составить запрос
  • Вопрос задан
  • 144 просмотра
Решения вопроса 2
ThunderCat
@ThunderCat Куратор тега MySQL
{PHP, MySql, HTML, JS, CSS} developer
каунт(*) as cnt + груп бай book_id + ордер бай cnt деск + лимит 5
Ответ написан
Комментировать
Henxed
@Henxed
Сам запрос будет выглядеть так (как написали уже). Где likes_books - ваша таблица
SELECT book_id, COUNT(*) AS likes
FROM likes_books
GROUP BY book_id
ORDER BY likes DESC
LIMIT 5;

В Laravel
$likes = DB::table('likes_books')
            ->select('book_id', DB::raw('COUNT(*) as likes'))
            ->groupBy('book_id')
            ->orderByDesc('likes')
            ->limit(5)
            ->get();

или вместо DB::table('likes_books') используете модель(вместо LikeBook своё название) LikeBook::select....
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы