Casi EXACTO 150-and-st/7965812#7965812">respuesta a la misma pregunta aquí . La premisa es que necesitaría otra columna para actuar como un total acumulado para el cliente en cuestión...
Creé una tabla y simulé datos exactamente como sus resultados y obtuve SUS resultados exactos... El problema era que MySQL estaba aplicando los criterios DOS VECES por fila y no entendía cómo o por qué... Sospecho FUERTEMENTE que es un error, pero no puedo describirlo. De todos modos, SÍ tengo una solución que fuerza una "PreConsulta" interna como base, y devuelve TODOS los registros de eso con @SQLVars y luego aplica una cláusula WHERE de eso...
select properSummed.*
from
( select
o.orderid,
o.price,
@RunningTotal := @RunningTotal + o.price as UnpaidSoFar
from
orders o,
(select @RunningTotal := 0 ) sqlvars
where o.ownerid = 1
and o.paymentstatus = 'unpaid' ) properSummed
where
properSummed.UnpaidSoFar <= 50