Сам долго разбирался с этим вопросом. Как результат - для себя принял формулу: "простые SELECT + обработка в бекэнде". Причины:
1. Более поддерживаемый код - логика выполнения не разбросана по двум местам, а вся сидит в BackEnd
2. Были проблемы с прогревом - проще тянуть две таблицы по отдельности, чем одну через JOIN. Получается быстрее на первичном доступе к данным.
3. Более простая отладка и исправление ошибок, более простое расширение функционала