si perchè il mio effettua 1 sola operazione al database che a seconda dei campi compilati estrare il risultato giusto.

Se inoltre dovesse dare qualche campo doppio fai
codice:
SELECT DISTINCT ...
FROM ...
WHERE ...