Как лучше создать запрос в базу: лепить один большой или плодить маленькие?
Тут вопрос в скорости и собственном выборе, я проводил тестирование что быстрее единый SQL запрос и разбитый на последовательные итерации, в обоих случаях выиграл последовательный + они были менее прожорливы к ресурсам.
Вы всегда можете это протестировать сами, и понять что быстрее, мое мнение я озвучил -)
Заполнить свою структуру 10000000 доп. записей и сравните.
А правильно или не правильно вопрос сложный.
Если задача позволяет - делайте несколько маленьких, так проще и удобнее. Другое дело, если вам нужна фильтрация/сортировки по полям join-нутых таблиц, тогда выбора нет.