Hola dark_17:
Antes que nada, hay que tener cuidado con el manejo de los operadores AND y OR, ya que estos tienen una jeraquía distinta... al igual que en matemáticas, no es lo mismo
Código:
2 + 3 * 5 = 17
(2 + 3) * 5 = 25
Lo mismo ocurre con los operadores AND y OR, ya que el operador AND tiene mayor jerarquía, por lo tanto, igual que en el primer ejercicio con el operador (*) se ejecuta primero la multiplicación (3 * 5) y después la suma... Hay que tener cuidado con el uso de los paréntesis si vas a mezclar estos operadores.
Ahora si, volviendo al tu caso, tienes esto:
Código:
SELECT column1, column2
FROM tabla
WHERE condicion1 and condicion2 or condicion3
Tal como lo tienes, y sin usar paréntesis, lo que estás haciendo es semejante a hacer esto:
Código:
SELECT column1, column2
FROM tabla
WHERE (condicion1 and condicion2) or condicion3
Es decir, el resultado de la consulta evalua primero la condición AND y te arrojará resultados si se cumplen las condiciones 1 y 2 o si sólo se cumple la condición 3... mucho ojo con eso...
En cuanto a lo que pides, en realidad no le veo ningún sentido a poner la condición 3 si esta es opcional...
Cita: Pero ahora yo deseo que se cumpla la condicion1, la condicion 2,
y la condicion 3 puede que se cumpla o no
Si la condición 3 se puede cumplir o no, y eso no te afecta en el resultado, estonces simplemente no la coloques:
Código:
SELECT column1, column2
FROM tabla
WHERE condicion1 and condicion2
Si esto no te sirve, igual sería conveniente que nos pongas algunos datos de ejemplo para ver qué es lo que necesitas evaluar.
Saludos
Leo.