avere
Sarà lento, ma un having
la clausola verrà eseguita dopo tutti i select, join, where e group by sono terminati e sono stati completamente risolti.
L'unico problema è che having
non usa un indice, mentre where
usa un indice.
SELECT
ranking stuff
FROM
lot of tables
WHERE simple_condition
HAVING filters_that_run_last
Rendi espliciti i tuoi join
Tieni presente che non devi mescolare join espliciti e impliciti.
Se vuoi un cross join, puoi usare il cross join
parola chiave.
....
) AS Ranking
CROSS JOIN (SELECT @curr := null, @prev := null, @rank := 0) InitVars
WHERE
Ranking.regional_id = 1003