Hola stevens82:
Lo que pretendes puede realizarse, pero no necesariamente es algo sencillo...
De entrada te comento que no puedes como tal hacer un SELECT condicional, lo que puedes hacer es mostrar información de manera condicional... trataré de explicarme mejor con un ejemplo...
Supongamos que tenemos una tabla así:
Código MySQL:
Ver original+------+--------+--------+--------+
| id | campo1 | campo2 | campo3 |
+------+--------+--------+--------+
| 1 | uno | one | un |
| 2 | dos | two | duex |
| 3 | tres | three | trois |
+------+--------+--------+--------+
imagina entonces que para el ID = 1 quieres mostrar la descripción del campo1, para el ID = 2 la descripción del campo2 y lo mismo para el ID = 3 la descripción del campo3, entonces puedes aplicar una condición tipo CASE-WHEN así:
Código MySQL:
Ver original -> tabla;
+-------+
| campo |
+-------+
| uno |
| two |
| trois |
+-------+
Igual y esto te puede servir más o menos para lo que quieres hacer... sin embargo, hay algunos puntos a considerar...
1. No puedes hacer condiciones que te digan que selecciones menos campos o más campos... es decir, no puedes hacer una condición que para cierto valor te seleccione 4 campos y para otra condición te seleccione 8... En todo caso, lo que podrías hacer es poner los campos que "sobran" o que falten en NULL
2. Cada condición regresa sólo un campo, es lo mismo que comento en el punto 1, no podrías hacer una condición para que te regrese un campo y en otra dos campos... lo que tendrías que hacer es aplicar la misma condición para cada campo que quieras pintar o no...
En lo particular NO TE RECOMIENDO QUE HAGAS ESO... sino que más bien trates de implementar un Procedimiento Almacenado SP en donde pongas toda la lógica que quieras... así podrías entonces aplicar algo como esto:
Código:
SI condición = 1 ENTONCES
SELECT campo1, campo 2 FROM tabla
SI condición = 2 ENTONCES
SELECT campo4, campo5, campo6, campo7, campo8
FROM tabla1
INNER JOIN tabla2 ON ...
WHERE
...
Es decir, armar la consulta que necesites para cada condición... aquí no tendrías problemas en cuanto a si necesitas hacer mas JOIN's o mostrar más o menos campos.
Haz la prueba y nos comentas.
Saludos
Leo.