Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/10/2009, 17:41
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, 4 meses
Puntos: 2658
Respuesta: AND y OR en la misma consulta

Las condiciones de un WHERE siguen las mismas reglas que los ejercicios de Lógica: Si una condición OR debe ser evaluada como una sola proposición, esta debe ser encerrada entre paréntesis.
Como los operadores de lógica se evalúan secuencialmente, en tu caso la idea es que devolverá los registros si:
1) nacionalidad es 1.
2) nacionalidad es 2 y departamento_donde_trabaja es 1.
Para que la disyunción opere bien hay dos formas:

Código sql:
Ver original
  1. SELECT *
  2. FROM tabla A
  3. WHERE (nacionalidad = 1 OR nacionalidad = 2) AND departamento_donde_trabaja = 1;
o bien:

Código sql:
Ver original
  1. SELECT *
  2. FROM tabla A
  3. WHERE nacionalidad IN (1, 2)  AND departamento_donde_trabaja = 1;

La segunda forma es más rápida ante tablas muy grandes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)