Själva utförandet av MySQL-satser är lite knepigt. Standarden specificerar dock tolkningsordningen för element i frågan. Detta är i princip i den ordning du anger, även om jag tror att HAVING och GROUP BY kan komma efter SELECT :
FROMklausulWHEREklausulSELECTklausulGROUP BYklausulHAVINGklausulORDER BYklausul
Detta är viktigt för att förstå hur frågor analyseras. Du kan inte använda ett kolumnalias definierat i en SELECT i WHERE sats, till exempel, eftersom WHERE tolkas före SELECT . Å andra sidan kan ett sådant alias finnas i ORDER BY klausul.
När det gäller det faktiska utförandet är det verkligen upp till optimeraren. Till exempel:
. . .
GROUP BY a, b, c
ORDER BY NULL
och
. . .
GROUP BY a, b, c
ORDER BY a, b, c
båda har effekten av ORDER BY exekveras inte alls -- och exekveras därför inte efter GROUP BY (i det första fallet är effekten att sorteringen tas bort från GROUP BY och i den andra blir effekten att inte göra något mer än GROUP BY gör det redan).