Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

consulta sql

Estas en el tema de consulta sql en el foro de Bases de Datos General en Foros del Web. Que tal amigos, tengo un problema con sql.... tengo 1 tabla con los siguientes campos: palabra, idlibro, clave en palabra, todos los registros es de ...
  #1 (permalink)  
Antiguo 13/12/2005, 11:16
 
Fecha de Ingreso: marzo-2002
Mensajes: 85
Antigüedad: 22 años, 1 mes
Puntos: 1
Pregunta consulta sql

Que tal amigos, tengo un problema con sql....

tengo 1 tabla con los siguientes campos:
palabra, idlibro, clave
en palabra, todos los registros es de 1 sola palabra
idlibro, es el # del libro
y clave, es un numero entre 1 y 5

les pongo aqui algunos datos de la tabla:

palabra idlibro clave
JOHN 1 1
HILBURN 1 1
JOHNNY 1 1
JOHNSON 1 2
DAVID 1 2
MEXICO 1 3
PRENTICEHALL 1 3
HILL 2 3
CIRCUITOS 2 4
ELECTRONICOS 2 4
ELECTRONICA 3 1
CALVERT 3 1
MCCAUSLAND 3 1

lo que quiero hacer es una consulta donde me diga cual es el libro que tiene "circuitos electronicos", por ejemplo...
no quiero usar subconsultas....
asi que, quiero una consulta que verifique todas las opciones en donde esten las 2 palabras, pero solo me regrese los id's que se repiten, por contener ambas palabras....
segun yo, deberia ser una consulta de este tipo:

SELECT indice.idlibro
FROM indice
WHERE indice.palabra In ('CIRCUITOS','ELECTRONICOS') AND indice.clave=4
HAVING Count(indice.idlibro)>=2;

pero no me funciona... me regresa todos los registros que tengan solo 1 de las 2 palabras... como puedo hacer para decirle que devuelva el id que empate con ambas palabras???

quiero evitar subconsultas, porque pueden ser mas de 2 palabras, lo que haria que tuviera que usar muchas subconsultas anidadas...

gracias de antemano por su ayuda
  #2 (permalink)  
Antiguo 13/12/2005, 12:37
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 5 meses
Puntos: 38
tal vez si agregas un group by

Código:
SELECT indice.idlibro
FROM indice
WHERE indice.palabra In ('CIRCUITOS','ELECTRONICOS') AND indice.clave=4
group by indice.idlibro
HAVING Count(indice.idlibro)>=2;
  #3 (permalink)  
Antiguo 13/12/2005, 12:44
 
Fecha de Ingreso: marzo-2002
Mensajes: 85
Antigüedad: 22 años, 1 mes
Puntos: 1
es extraño... esta vez si funciono con group by, ya lo habia intentado, y no lo hacia... estoy usando el diseñador de consultas de access, tendra algo que ver?

por lo menos, ya quedo la consulta, muchas gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:17.