Hay muchas formas de hacerlo des de crear una tabla temporal a crear una array php con el resultado y por programación filtrarlo, genrando nuevos arrays con las nuevas selecciones...
Tambien puedes hacerlo con sql con subconsultas (Sbc)
SELEC .... sbc.campos....
FROM (SELECT ...campos... FROM tablas WHERE ...) as Sbc
WHERE Sbc.campo....
pero claro ahi estarias ejecutanto la consulta cada vez....
O integrando las restriciones
SELECT ...campos...
FROM tabla
WHERE ... primera restricion...
AND ...segunda restrición...
...
AND ... restriccion N;
Yo me inclinaria por la solución de los arrays....
mysql_fetch_array
Luego recorres ese array y con condicionales creas las sub-selecciones....
array_push