SQL порядок выполнения

Вопрос по подзапросам -- вычисляемые поля. Когда и как выполняется подзрапрос, порядок выполнения

Forums:

В учебнике Бена Форта имеется вот такой пример к главе 11 "Использование подзапросов":

SELECT cust_name, cust_state,
(SELECT COUNT(*)
 FROM Orders
 WHERE Orders.cust_id = Customers.cust_id) AS orders
 FROM Customers
 ORDER BY cust_name;

Для ясности поясню - подразумевается выборка количества заказов (которые хранятся в таблице Orders) каждого клиента (список которых хранится в таблице Customers,). Вот отрывок из пояснения к коду:

Cначала where потом having SQL - Порядок выполнения частей SQL запросов

На мой взгляд это весьма актуально:
По стандарту SQL-92

  • 1. Выполняется FROM - формируется рабочая таблица
  • 2. к этому результату применются предикаты предложения WHERE
  • 3. GROUP By
  • 4. HAVING
  • 5. SELECT
  • 6. ORDER BY (формально не входит в определение SELECT)

(C) Джо Селко. SQL для профессионалов. Програмирование.

Subscribe to RSS - SQL порядок выполнения