Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL заявка към динамични редове за класиране

имане
Ще бъде бавно, но 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Обща грешка:1366 Неправилна стойност на цяло число с актуализация на Doctrine 2.1 и Zend Form

  2. Как точно работят транзакциите с PHP PDO с едновременност?

  3. Как да спрете MySQL при инсталиране на Mac OS?

  4. NOW() Примери – MySQL

  5. Как да зададете SQL_BIG_SELECTS=1 в изявление за присъединяване на Laravel