Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/05/2011, 02:15
vilmar23
 
Fecha de Ingreso: abril-2009
Mensajes: 48
Antigüedad: 15 años
Puntos: 5
Respuesta: Búsqueda sobre una columna que cumpla multiples datos

Muchas gracias por la respuesta,

A lo mejor tienes razón, pero creo que me has entendido mal en algún punto o me he explicado mal.

Creo que más o menos lo tengo montado como dices, pero en vez de con paciente, con visita.

Tengo, las visitas en una tabla (visita), los objetivos en otra (objetivo) y las puntuaciones en una tercera (objetivo_puntuado). Puesto que es una relación N:N.

En una visita, un objetivo no puede tener varios valores diferentes. Pongo un ejemplo de lo que necesito, a ver si se entiende mejor:

Tabla: objetivo_puntuado

Id_visita - ID_objetivo - valor

3 ------ 4 ------ -2
3 ------- 16 ------- 5
3 ------ 6 ------ 3
4 ------- 4 ------- 3
5 ------- 2 ------- -1
5 ------- 6 ------- 3


Necesito hacer una búsqueda que me devuelva la visita 3 cuando busque una visita con el objetivo 4 puntuado con -2 y el objetivo 6 puntuado con 3.

Esto se puede hacer así supongo:

Código SQL:
Ver original
  1. SELECT o1.ID_visita FROM objetivo_puntuado AS o1 LEFT JOIN objetivo_puntuado AS o2 ON o1.ID_visita=o2.ID_visita WHERE o1.objetivo=4 AND o1.valor=-2 AND o2.ID_objetivo=6 AND o2.valor=3

Pero si en vez de 2 objetivos y valores, busco 6, esto empieza a dispararse, no?

Espero que se me haya entendido mejor. O a lo mejor realmente tengo un fallo conceptual, y necesito cambiar la estrucvtura, pero no veo donde.

Muchísimas gracias gnzsoloyo.