Para esse tipo de pesquisa existem query builders. Procure por bibliotecas do tipo ou crie você mesmo. Dever ser bem simples de implementar. Se prevê outras queries similares no futuro tente manter a estrutura genérica para qualquer query select.
Em resposta a [Dúvida] Querys com muitos campos em monolito
2