tener
Será lento, pero having
la cláusula se ejecutará después todas las selecciones, uniones, dónde y agrupar por han terminado y están completamente resueltos.
El único problema es que having
no utiliza un índice, mientras que where
utiliza un índice.
SELECT
ranking stuff
FROM
lot of tables
WHERE simple_condition
HAVING filters_that_run_last
Haga que sus uniones sean explícitas
Tenga en cuenta que no tiene que mezclar uniones explícitas e implícitas.
Si quiere una unión cruzada, puede usar la cross join
palabra clave.
....
) AS Ranking
CROSS JOIN (SELECT @curr := null, @prev := null, @rank := 0) InitVars
WHERE
Ranking.regional_id = 1003