Получить 2 последние сообщения для каждой категории
Допустим, у меня есть 2 таблицы: blog_posts и категории. Каждое сообщение в блоге относится только к ОДНОЙ категории, поэтому здесь есть в основном внешний ключ между двумя таблицами.
Я хотел бы получить 2 последних сообщения из каждой категории, возможно ли добиться этого за один запрос? GROUP BY сгруппирует все и оставит только один ряд в каждой категории. Но я хочу 2 из них.
Было бы легко выполнить 1 + N запрос (N = номер категории). Сначала найдите категории. А затем получить 2 сообщения из каждой категории.
Я полагаю, что было бы также довольно легко выполнить M запросов (M = количество сообщений, которые я хочу от каждой категории). Первый запрос выбирает первый пост для каждой категории (с группой по). Второй запрос извлекает второй пост для каждой категории. и т.п.
Мне просто интересно, есть ли у кого-нибудь лучшее решение для этого. Я не против сделать 1 + N запросов для этого, но для любопытства и общего знания SQL, это будет оценено!
Заранее спасибо, кто может помочь мне с этим.