Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Вложенные наборы
Вложенные наборы
Вложенные наборы формируются с использованием синтаксиса специального вида выражений SQL, называемых подзапросами. Этот вид выражений принимает форму вложенного оператора SELECT, который может быть включен в список спецификаций столбцов главного запроса для получения одного значения строки, или в предложение WHERE как часть условия поиска. Допустимый синтаксис SELECT изменяется в зависимости от контекста, в котором используется подзапрос.
В следующем простом примере запрос к таблице TABLEA использует вложенный подзапрос для включения в выходной набор на время выполнения столбца с именем DESCRIPTION, наследующего значение из столбца COLA таблицы TABLEB:
SELECT COL1, COL2, COL3,
(SELECT COLA FROM TABLEB WHERE COLX='Espagnol')
AS DESCRIPTION
FROM TABLEA
WHERE ... ;
Обратите внимание на использование ключевого слова AS для присваивания имени (DESCRIPTION) наследуемому столбцу. Это делать необязательно, но рекомендуется для ясности кода.
Очень часто включенный запрос является коррелированным с главным запросом. Коррелированный запрос - это запрос, чье предложение WHERE связано с одним или более значениями выходного списка внешнего запроса или с другими значениями таблиц из внешнего запроса. Коррелированный подзапрос похож по своему действию на INNER JOIN и иногда может быть использован для повышения производительности вместо JOIN.
Темы подзапросов подробно обсуждаются в следующих двух главах, особенно в главе 22.
- Наборы данных
- ГЛАВА 23. Упорядоченные и агрегатные наборы.
- Выходные наборы
- ВЛОЖЕННЫЕ СТРУКТУРЫ
- Наборы символов Firebird
- Предикаты: наборы узлов
- 8.1.1. Вложенные функции
- 10.6.2. Наборы сигналов: sigset_t и связанные функции
- ВЛОЖЕННЫЕ ЦИКЛЫ
- Вложенные условные конструкции в Python:
- Пользовательские наборы символов и сортировки
- I.3.1 Протоколы, элементы, стеки и наборы