Многие пишут SQL-запросы сверху вниз и думают, что СУБД выполняет их в том же порядке.
Но SQL работает иначе.
Фактический порядок выполнения выглядит так:
1. FROM
2. JOIN
3. WHERE
4. GROUP BY
5. HAVING
6. SELECT
7. ORDER BY
8. LIMIT
Именно поэтому алиасы из SELECT нельзя использовать в WHERE, а ошибки в агрегатах часто оказываются не там, где их ищут.
Понимание порядка выполнения помогает:
• быстрее отлаживать запросы;
• правильно использовать агрегации;
• избегать логических ошибок;
• писать более предсказуемый SQL.
Если запрос ведёт себя странно, проверь не то, как он написан, а то, как его выполняет движок базы данных.
👉 Java Portal
Post #2411
1.57K

- ❤ 7
- 👍 4