Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Коррелированные подзапросы

Коррелированные подзапросы

Когда элемент данных, полученный из вложенного подзапроса, должен быть выбран в контексте связи значения с текущей строкой главного запроса, возможно использование коррелированного подзапроса. Firebird требует явно указанных идентификаторов в коррелированных подзапросах.

В следующем примере связываемые столбцы в главном запросе и в подзапросе являются коррелированными; здесь использованы алиасы таблиц для устранения какой- либо неясности:

SELECT

M.LAST_NAME,

M.FIRST_NAME,

M.ADDRESS1,

M.ADDRESS2,

M.POSTCODE,

(SELECT R.START_TIME FROM ROUTES R

WHERE R.POSTCODE = M.POSTCODE AND M.DOW = 'MONDAY') AS START_TIME

FROM MEMBERSHIP M

WHERE . . .

Этот запрос возвращает одну строку для каждого выбранного элемента, независимо от того, существует ли соответствие между полями POSTCODE обеих таблиц. Если нет соответствия, то поле START_TIME будет иметь значение NULL.

Оглавление книги


Генерация: 2.420. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз