Получить 2 последние сообщения для каждой категории

Допустим, у меня есть 2 таблицы: blog_posts и категории. Каждое сообщение в блоге относится только к ОДНОЙ категории, поэтому здесь есть в основном внешний ключ между двумя таблицами.

Я хотел бы получить 2 последних сообщения из каждой категории, возможно ли добиться этого за один запрос? GROUP BY сгруппирует все и оставит только один ряд в каждой категории. Но я хочу 2 из них.

Было бы легко выполнить 1 + N запрос (N = номер категории). Сначала найдите категории. А затем получить 2 сообщения из каждой категории.

Я полагаю, что было бы также довольно легко выполнить M запросов (M = количество сообщений, которые я хочу от каждой категории). Первый запрос выбирает первый пост для каждой категории (с группой по). Второй запрос извлекает второй пост для каждой категории. и т.п.

Мне просто интересно, есть ли у кого-нибудь лучшее решение для этого. Я не против сделать 1 + N запросов для этого, но для любопытства и общего знания SQL, это будет оценено!

Заранее спасибо, кто может помочь мне с этим.

Ответы на вопрос(2)

Ваш ответ на вопрос