Sobes.tech
Middle+
17

В каком порядке выполняются операторы SQL: SELECT, FROM, JOIN, WHERE, GROUP BY, HAVING, LIMIT?

Компании, где спрашивали
X5

Ответ от нейросети

sobes.tech AI

Порядок логического выполнения операторов SQL отличается от порядка их написания в запросе. Он следующий:

  1. FROM — выбираются таблицы и выполняются JOIN'ы, формируя исходный набор данных.
  2. JOIN — объединение таблиц происходит вместе с FROM.
  3. WHERE — фильтрация строк исходного набора по условию.
  4. GROUP BY — группировка отфильтрованных данных по указанным столбцам.
  5. HAVING — фильтрация сгруппированных данных по агрегатным условиям.
  6. SELECT — выборка нужных столбцов и вычисление выражений.
  7. LIMIT (или TOP) — ограничение количества возвращаемых строк.

Пример:

SELECT department, COUNT(*)
FROM employees
JOIN departments ON employees.dept_id = departments.id
WHERE salary > 50000
GROUP BY department
HAVING COUNT(*) > 5
LIMIT 10;

Здесь сначала объединяются таблицы, затем фильтруются сотрудники по зарплате, потом группируются по отделам, фильтруются группы по количеству сотрудников, выбираются столбцы и, наконец, ограничивается число результатов.