</>
Plan du cours — 7/64

L'ordre logique d'exécution d'une requête

Débutant

On écrit SELECT en premier, mais il est évalué presque en dernier : c'est la source de la plupart des erreurs de débutant.

ÉtapeClauseConséquence
1FROM / JOINOn construit l'ensemble de départ
2WHEREFiltre les lignes : ne voit pas les alias du SELECT
3GROUP BYRegroupe
4HAVINGFiltre les groupes
5SELECTCalcule les colonnes et les alias
6DISTINCTRetire les doublons
7ORDER BYPeut utiliser les alias du SELECT
8LIMIT / OFFSETCoupe le résultat
SELECT total * 1.2 AS ttc
FROM   commandes
WHERE  ttc > 100;        -- ERREUR : l'alias « ttc » n'existe pas encore dans WHERE

SELECT total * 1.2 AS ttc
FROM   commandes
WHERE  total * 1.2 > 100 -- correct (ou passer par une sous-requête / CTE)
ORDER  BY ttc;           -- correct : ORDER BY voit les alias