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

WHERE campo IN (1,2,3) concordancia exacta

Estas en el tema de WHERE campo IN (1,2,3) concordancia exacta en el foro de Bases de Datos General en Foros del Web. Hola tengo una duda... teniendo en cuenta estas 3 tablas tbl_productos - idProducto - nombre tbl_complementos - idComplemento - nombre tbl_productos_complementos - idProducto - idComplemento ...
  #1 (permalink)  
Antiguo 08/11/2006, 04:41
 
Fecha de Ingreso: diciembre-2002
Mensajes: 28
Antigüedad: 21 años, 4 meses
Puntos: 0
Exclamación WHERE campo IN (1,2,3) concordancia exacta

Hola tengo una duda...

teniendo en cuenta estas 3 tablas

tbl_productos
- idProducto
- nombre

tbl_complementos
- idComplemento
- nombre

tbl_productos_complementos
- idProducto
- idComplemento


¿Como podria en una consulta extraer solo aquellos productos que tengan el complemento 1 y 2 por ejemplo

SELECT idProducto FROM tbl_productos_complementos
WHERE idComplemento IN (1,2)

devuelve aquellos productos que tengan el complemento 1 o 2 pero necesito todos los productos que tengan asociado ambos complementos


Muchas gracias
  #2 (permalink)  
Antiguo 20/11/2006, 13:36
Avatar de Ugho  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 487
Antigüedad: 21 años, 5 meses
Puntos: 0
Creo que por el simple hecho de que el valor de un registro puede tener un solo valor en un momento dado y no mas de uno...
Saludos
__________________
________________________________________

Ugho.
  #3 (permalink)  
Antiguo 13/12/2006, 15:54
 
Fecha de Ingreso: diciembre-2002
Mensajes: 28
Antigüedad: 21 años, 4 meses
Puntos: 0
Re: WHERE campo IN (1,2,3) concordancia exacta

No entiendo que quieres decir. ????
  #4 (permalink)  
Antiguo 13/12/2006, 16:21
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Re: WHERE campo IN (1,2,3) concordancia exacta

Entonces tienes que usar AND:

WHERE idComplemento = 1 AND idComplemento = 2

Si quieres al menos 2 de la combinación de 3 entonces necesitas mezclar AND y OR

WHERE (idComplemento = 1 AND idComplemento = 2)
OR (idComplemento = 1 AND idComplemento = 3)
OR (idComplemento = 2 AND idComplemento = 3)

O mejor aún, meter los 3 (o N) valores dentro de una tabla temporal y hacer un JOIN+COUNT+GROUP BY para saber cuando cierto registro tenga X ocurrencias.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #5 (permalink)  
Antiguo 13/12/2006, 17:27
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 5 meses
Puntos: 6
Re: WHERE campo IN (1,2,3) concordancia exacta

Esta consulta te traera aquellos productos que tengan al menos 2 ó mas complementos

Saludos!

Código:
SELECT
        *
FROM
        TBL_PRODUCTOS P
WHERE
        EXISTS(SELECT 1 FROM TBL_PRODUCTOS_COMPLEMENTOS WHERE IDPRODUCTO = IDPRODUCTO HAVING COUNT(1) > 1 GROUP BY IDPRODUCTO)
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 07:41.