Если данных в каждой категории немного - то оверхед от дублирования в каждой строке результата небольшой, и ответ
Vindicar прекрасен.
Если оверхед большой, то:
- получаете первым запросом категории,
- сохраняете в какую-то структуру, где ключом служит id категории,
- выбираете посты одним запросом, с фильтром по id нужных категорий,
- в процессе разбора результатов этого запроса, распихиваете посты сразу по нужным категориям.