14/09/2010, 06:16
|
| | Fecha de Ingreso: febrero-2009
Mensajes: 17
Antigüedad: 15 años, 11 meses Puntos: 0 | |
Respuesta: 4 selects a una misma tabla indexados o inner joins?? Buenas gnzsoloyo,
tienes razón con que no se entiende bien.
La estructura ya estaba creada en la empresa y no puedo modificarla.
la idea básica es que esto es una tabla de preguntas. A cada pregunta va asociada varias respuestas y como campos tienes:
- quien creó la pregunta.
- quien está asociado a la pregunta.
- el pripio texto de la pregunta.
y en esta misma tabla y con la misma estructura las respuestas.
¿Como se diferencian unas de otras?
Porque simplemente cuando alguien accede a ver una pregunta lo que cuelga de ella, que son las respuestas, en la tabla son creadas como un registro más con la diferencia de que el campo
- 'id_pregunta'
no está a null. Es decir, es una respuesta.
a continuación dejo la enorme select que tengo:
SELECT *
FROM preguntas a
WHERE usuario_asociado = 'felix'
and usuario_creador <> usuario_asociado
and id_pregunta in
(
SELECT id FROM preguntas b
where usuario_asociado = 'felix'
and id_estado <> 7
and id_estado <> 5
and id_pregunta is null
)
and id in
(
SELECT max(id)
FROM preguntas c
WHERE usuario_asociado = 'felix'
and descripcion is not null
group by id_pregunta
)
order by falta desc // fecha de alta.
Esta select cumple con el enunciado:
"Obtener el id_respuesta de todas las preguntas que estan asociadas a felix, cuya última respuesta no sea suya y que su estado no sea cerrado y obtener también la descripcion de la última respuesta (la que tenga la fecha más reciente) ".
Espero haberme explicado,
un saludo,
dajomaj. |