Понимание вложенных запросов

Завершено

Вложенный запрос — это инструкция SELECT, вложенная в другой запрос. Возможность вложения одного запроса в другой позволяет оптимизировать создание эффективных запросов в T-SQL. Как правило, вложенные запросы оцениваются один раз и предоставляют свои результаты внешнему запросу.

Работа с вложенными запросами

Вложенный запрос представляет собой инструкцию SELECT вложенную или внедренную в другой запрос. Вложенный запрос, который называется подзапросом, называется внутренним запросом. Запрос, содержащий вложенный запрос, является внешним запросом.

Целью вложенного запроса является возврат результатов для внешнего запроса. Форма результатов определяет, является ли вложенный запрос скалярным или многозначным:

  • Скалярные вложенные запросы возвращают одно значение. Внешние запросы должны обрабатывать один результат.
  • Многозначные вложенные запросы возвращают результат, похожий на таблицу с одним столбцом. Внешние запросы должны иметь возможность обрабатывать несколько значений.

В дополнение к выбору между скалярными и многозначными подзапросами, подзапросы могут быть либо автономными, либо связанными с внешним запросом.

  • Автономные вложенные запросы могут быть написаны как изолированные запросы без зависимостей от внешнего запроса. Автономный вложенный запрос обрабатывается один раз, когда внутренний запрос выполняется и передает результаты в этот внешний запрос.
  • Связанные вложенные запросы ссылаются на один или несколько столбцов внешнего запроса и, следовательно, зависят от него. Связанные вложенные запросы не могут выполняться отдельно от внешнего запроса.