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 originalSELECT 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.