имане
Ще бъде бавно, но having
клаузата ще тече след всички селектирания, присъединявания, където и групиране по са приключили и са напълно разрешени.
Единственият проблем е, че having
не използва индекс, докато where
използва индекс.
SELECT
ranking stuff
FROM
lot of tables
WHERE simple_condition
HAVING filters_that_run_last
Направете връзките си ясни
Обърнете внимание, че не е нужно да смесвате изрични и неявни присъединявания.
Ако искате кръстосано съединение, можете да използвате cross join
ключова дума.
....
) AS Ranking
CROSS JOIN (SELECT @curr := null, @prev := null, @rank := 0) InitVars
WHERE
Ranking.regional_id = 1003