má
Bude to pomalé, ale having
klauzule poběží po všechny výběry, připojení, kde a seskupení byly dokončeny a jsou plně vyřešeny.
Jediný problém je v tom, že having
nepoužívá index, zatímco where
používá index.
SELECT
ranking stuff
FROM
lot of tables
WHERE simple_condition
HAVING filters_that_run_last
Udělejte svá připojení explicitní
Upozorňujeme, že nemusíte míchat explicitní a implicitní spojení.
Pokud chcete křížové spojení, můžete použít cross join
klíčové slovo.
....
) AS Ranking
CROSS JOIN (SELECT @curr := null, @prev := null, @rank := 0) InitVars
WHERE
Ranking.regional_id = 1003