Составители:
Рубрика:
FROM список_таблиц
WHERE
{выражение {[NOT] IN оператор_ сравнения} [ANY | ALL]}
[NOT] EXIST}
(SELECT [DISTINCT] список_ выбора_ подзапроса
FROM список_ таблиц
WHERE условия)
[GROUP BY список группировки
[HAVING условия]
[ORDER BY порядок_ сортировки];
В зависимости от того, каким образом вложенный подзапрос взаимодействует с
внешним подзапросом, их подразделяют на два вида: простые и коррелированные.
Простые вложенные подзапросы обрабатываются системой "снизу вверх". Первым
обрабатывается вложенный подзапрос самого нижнего уровня. Множество значений,
полученное в результате его выполнения, используется при реализации подзапроса более
высокого уровня и т.д
..
Запросы с коррелированными вложенными подзапросами обрабатываются
системой в обратном порядке. Сначала выбирается первая строка рабочей таблицы,
сформированной основным запросом, и из нее выбираются значения тех столбцов,
которые используются во вложенном подзапросе (вложенных подзапросах). Если эти
значения удовлетворяют условиям вложенного подзапроса, то выбранная строка
включается в результат. Затем выбирается вторая строка
и т.д., пока в результат не будут
включены все строки, удовлетворяющие вложенному подзапросу (последовательности
вложенных подзапросов). Как простые, так и коррелированные подзапросы начинаются с
ключевого слова IN или оператора сравнения и содержат ключевые слова ANY или
ALL.
Подзапросы, которые начинаются с ключевого слова EXISTS (существует),
представляют собой проверку на существование.
Обычно внутренний запрос
генерирует значение, которое проверяется в предикате
WHERE внешнего запроса, определяющего верно оно или нет. Например, предположим,
Страницы
- « первая
- ‹ предыдущая
- …
- 115
- 116
- 117
- 118
- 119
- …
- следующая ›
- последняя »
