Замечательный пример того, как не нужно делать. Все можно и нужно выбрать одним запросом. Про индексы не говорю, для единичных выборок они нужны, для полной выборки - скорее нет.
Как минимум стоит открыть клиент какой-нибудь и пописать там sql-запросы, делающие нужные вам выборки. Посмотреть планы выполнения, там уже решать, что требует оптимизации.