У меня есть две таблицы (и соответствующие модели) следующим образом:Как использовать LIMIT запрос на основе предложения ORDER BY в красноречивых
posts (
id auto_increment,
category_id refrences_id_on_categories,
data json
date timestamp
)
и
categories (
id auto_increment,
name text
)
я мог бы получить 5 сообщений с помощью:
Post::orderBy('category_id', 'asc')->take(5)->get();
Но, есть ли способ, чтобы получить 5 сообщений каждого Category
с использованием Eloquent
(Laravel 5, dbms: postgres)?
Редактировать Я ищу решение по одной линии, например, используя GROUP BY
или другие статьи.
Спасибо, но я ищу решение в одной строке с помощью 'GROUP BY' или что-то еще. –
Использование команды GROUP BY возвращает одну строку для сгруппированного столбца, поэтому вы не получите то, что вам нужно (что я предполагаю, это вложенный массив результатов для каждой категории). Не могли бы вы объяснить, почему вы увлекаетесь этим, возможно, объясните, как вы думаете, что сможете сделать это без Eloquent (имейте в виду, что не все решения проблемы могут быть одним лайнером, если это кажется более элегантным , а также Eloquent имеет свои ограничения). – Bogdan
Предположим, что у меня было много категорий, поэтому получение результата в одном запросе будет работать лучше, чем во многих запросах. –