Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Consulta MySQL para linhas de classificação dinâmicas


ter
Será lento, mas um having cláusula será executada depois todos os selects, joins, where e group by's terminaram e estão totalmente resolvidos.
O único problema é que having não usa um índice, enquanto where usa um índice.
SELECT
  ranking stuff
FROM 
  lot of tables
WHERE simple_condition
HAVING filters_that_run_last

Torne suas associações explícitas
Observe que você não precisa misturar junções explícitas e implícitas.
Se querer uma junção cruzada, você pode usar a cross join palavra-chave.
    ....
    ) AS Ranking
    CROSS JOIN (SELECT @curr := null, @prev := null, @rank := 0) InitVars
WHERE
  Ranking.regional_id = 1003