Bueno lo que yo haria en tu caso es hacer una primera consulta grande comparando los datos que sepas que siempre existiran.
luego vas creando consultas separadas de los datos que a veces estan y a veces no, de que forma?
Código PHP:
Ver original//primero la consulta grande imaginemos que es $sql
//aqui revisamos algun dato a ver si existe
if (isset($array['datoabuscar'])) { //hacemos la consulta del dato a buscar
}
if (isset($array['datoabuscar2'])) { //hacemos la consulta del dato a buscar2
}
y asi sucesivamente, espero que me entiendas