Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/09/2010, 06:16
dajomaj
 
Fecha de Ingreso: febrero-2009
Mensajes: 17
Antigüedad: 15 años, 3 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.