Hola a todos otra vez, gracias por redirigirme al otro grupo
para responder a mi duda, la verdad que si me ha servido el
apoyo de aquí. El planteamiento del problema que tengo es el
siguiente:
Tengo 2 Tablas: ANIMALES y RASGOS, cuya información estará
de la siguiente manera:
------------------------
|ANIMALES |
------------------------
| CLAVE | NOMBRE |
------------------------
| 1 | COCODRILO |
------------------------
| 2 | VACA |
------------------------
------------------------
| CVEANIM | RASGO |
------------------------
| 2 | PATAS |
------------------------
| 1 | PATAS |
------------------------
| 2 | COLA |
------------------------
| 1 | COLA |
------------------------
| 1 | HACE MU |
------------------------
Quiero buscar el nombre de un animal en base a sus características,
dando para ésto dentro de la consulta SQL sus rasgos. Si la
consulta girara en solamente 2 rasgos, mas o menos quedaría así:
SELECCIONA EL CAMPO NOMBRE DE LA TABLA ANIMALES CUANDO EL CAMPO
CLAVE ESTE DENTRO DE (SELECCIONA EL CAMPO CVEANIM DE RASGOS CUANDO
EL CAMPO RASGO SEA IGUAL A 'PATAS' Y SEA IGUAL A 'COLA')
Dentro de la consulta me arrojaría:
-------------
| NOMBRE |
-------------
|VACA |
-------------
|COCODRILO |
-------------
Y si soy más específico:
SELECCIONA EL CAMPO NOMBRE DE LA TABLA ANIMALES CUANDO EL CAMPO
CLAVE ESTE DENTRO DE (SELECCIONA EL CAMPO CVEANIM DE RASGOS CUANDO
EL CAMPO RASGO SEA IGUAL A 'PATAS' Y SEA IGUAL A 'COLA', Y SEA
IGUAL A 'HACE MU')
Debería dar como resultado nomás VACA, pero vuelve a aparecer
dos registros.
la consulta la estoy manejando de la siguiente manera:
SELECT nombre FROM animales WHERE clave IN (SELECT cveAnim FROM
rasgos WHERE rasgo IN ('COLA','PATAS','HACE MU'))
PARECERÁ ALGO TONTO LO QUE TRATO DE HACER, PERO PIENSA... SI
YO TE DIGO LAS SIGUIENTE PALABRAS: CHICA, MESA, TUBO, CERVEZA
¡¿HEEEEY, EN QUÉ ESTAS PENSANDO?! ¡ESO ES LO QUE QUIERO HACER
CON MI PROYECTO!
Siento que mi consulta SQL no es la correcta ¿Cómo creen ustedes que debería de ser para arrojarme un solo registro?