L'ordre logique d'exécution d'une requête diffère de l'ordre d'écriture : FROM et jointures, WHERE, GROUP BY, HAVING, SELECT, DISTINCT, ORDER BY, puis LIMIT. Il explique pourquoi un alias de SELECT n'est pas utilisable dans WHERE, mais l'est dans ORDER BY. Le moteur peut optimiser l'exécution réelle, sans changer le résultat.
Exemple
FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY -> LIMIT