que tiene esta línea en mi consulta SQL:consulta SQL en la cláusula
WHERE client = $id
AND (isinvoiced = 0) OR (isinvoiced = 1 and isrecurring = 1)
que obtiene más resultados que estoy esperando. Sin embargo, si escribo de esta manera:
WHERE client = $id
AND (isinvoiced = 0) OR (isinvoiced = 1 and isrecurring = 1 and client = $id)
entonces me consigue los resultados que quería, pero esta es la mejor manera de escribir esto? Simplemente no quiero encontrar más problemas con este código.
Google para [Reglas de reescritura de la distribución] (http://en.wikipedia.org/wiki/Distributivity). – onedaywhen
¿Estás seguro de que entiendes la diferencia entre 'a AND b OR c' y 'a AND (b OR c)'? Su ejemplo está escrito más claramente como '(a AND b) OR c', no lo que realmente quiere. – MatBailie