Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/09/2009, 09:53
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: problemas consulta con or y and

Código sql:
Ver original
  1. SELECT *
  2. FROM productos
  3. WHERE
  4.  ((talla_s> 0 OR talla_s<3) OR
  5.  (talla_m> 0 OR talla_m<4) OR
  6.  (talla_l > 0 OR talla_l<4) OR
  7.  (talla_xl>0 OR talla_xl<3))
  8.  AND catalogo='temporada'
  9.  AND catalogo='rebajado'
  10. ORDER BY marca, nombre;
El tema pasa porque el funcionamiento de una cadena de condiciones como esa hace que el AND funcione como operador contra la condición anterior, pero no contra todas las condiciones precedentes.
En casos con condiciones encadenadas así, debes analizar bien cuáles se deben considerar como una unidad lógica y cuáles no.
La proposicion que escribí hace que el valor del rango de talles se considere como unidad lógica, y sólo devolverá registros si una de las comparaciones es TRUE y las dependiendes de los AND también.
¿Se comrepende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)