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