SQL - Consulta en DB relacional

 
Vista:

Consulta en DB relacional

Publicado por ale (6 intervenciones) el 16/01/2004 06:07:35
Hola, tengo una duda que no puedo resolver...
Voy a dar un ejemplo sencillo de mi dificultad.

Dadas las siguientes tablas
persona(idpersona, nombre)
libro(idlibro, idpersona, genero)

Ahora como hago para seleccionar "solamente" a las personas que leen por ej: el idlibro = 1 e idlibro = 2.
O sea no quiero que me traiga gente que lee idlibro = 1 or idlibro = 2

Tengo la siguiente sintaxis a este modo de ejemplo

Select * from persona p, factura f where p.idpersona = f.idpersona and f.idlibro = 1 AND f.idlibro = 2
De este modo no me trae ningun registro.

En cambio si uso la sentencia OR de este modo
Select * from persona p, factura f where p.idpersona = f.idpersona and f.idlibro = 1 OR f.idlibro = 2.
Me trae, todos las personas que leen idlibro = 1 o idlibro = 2.

Lo unico que necesito es solamente las personas que lean "conjuntamente" idlibro = 1 y idlibro = 2

Gracias a quien pueda colaborar.
Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta en DB relacional

Publicado por ^kAnKy^ (14 intervenciones) el 16/01/2004 12:42:24
Comprueba si es seguro que hay registros con esas características. Si existen, prueba a ir quitando datos entre comentarios. Me explico, puedes poner:
Select * from persona p, factura f where p.idpersona = f.idpersona and f.idlibro = 1 --OR f.idlibro = 2.
Y así haz combinaciones, como todo buen programador...depura :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta en DB relacional

Publicado por ALE (6 intervenciones) el 16/01/2004 20:56:29
Hola, Gracias.
Pero el problema esta en que tengo como 10.000 registros y ese proceso de depuracion me tardaria mucho tiempo y altas demandas de recursos. Debe haber una manera directa de realizar esa consulta...
En fin, seguire intentando gracias igualmente!!
Saludos.
ale
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar