SQL

Вложенный запрос

Вложенный запрос –  запрос, который находится внутри другого SQL запроса и встроен внутри условного оператора WHERE (на самом деле вложенность может быть и многоуровневой, то есть select в select в select и т.д.).

Такие запросы обычно используются для получения данных из двух и более таблиц. Они нужны чтобы данные из разных таблиц можно было соотнести и по зависимости осуществить выборку.

У вложенных запросов есть и недостаток - зачастую слишком долгое время работы занимает запрос, потому что идет большая нагрузка на сервер. Тем не менее, саму конструкцию необходимо знать и использовать при возможности.

SELECT имя_колонки
FROM   таблица1
WHERE  имя_колонки ОПЕРАТОР
   (SELECT имя_колонки 
 FROM  таблица2
   [WHERE])

 

Вложенные запросы должны следовать следующим правилам:


Вложенный запрос должен быть заключён в родительский запрос;
Вложенный запрос может содержать только одну колонку в операторе SELECT;
Оператор ORDER BY не может быть использован во вложенном запросе. Для обеспечения функционала ORDER BY, во вложенном запросе может быть использован GROUP BY;
Вложенные запросы, возвращающие более одной записи могут использоваться с операторами нескольких значений, как оператор IN;
Вложенный запрос не может заканчиваться в функции;
SELECT не может включать никаких ссылок на значения BLOB, ARRAY, CLOB и NCLOB;
Оператор BETWEEN не может быть использован вместе с вложенным запросом.

© 2021 QAstart.by