У деяких випадках спосіб обчислення підзапиту залежить від значення поточного рядка зовнішнього запиту. Так, у підзапиті запиту 4.27 у фразі FROM згадується лише реляційне відношення КАФЕДРА, однак у фразі WHERE ми посилаємося на відношення ФАКУЛЬТЕТ. Це означає, що відбувається звернення до зовнішнього запиту. За наявності подібного звернення обчислення здійснюється в такий спосіб:
♦ фіксується поточний рядок зовнішнього реляційного відношення;
♦ для обчислення умови фрази WHERE виконується обчислення підзапиту, при цьому використовуються значення з поточного рядка зовнішнього запиту.
Обробка корельованого підзапиту має повторюватися для кожного з рядків таблиці, обчисленої у фразі FROM зовнішнього підзапиту, а не виконуватися лише раз, як у незв'язаному підзапиті. Розглянемо кілька прикладів корельованих під-запитів.
Запит 4.27_____________________________________________________________
Визначити факультети, фонд кожного з яких менший, ніж сума фондів всіх його кафедр.
SELECT Назва
FROM ФАКУЛЬТЕТ
WHERE Фонд < (SELECT $иМ(Фонд)
FROM КАФЕДРА
WHERE КАФЕДРА.#F = ФАКУЛЬТЕТ.#F)
Запит 4.28_____________________________________________________________
Визначити викладачів, які не є кураторами груп.
SELECT Прізвище
FROM ВИКЛАДАЧ
WHERE NOT EXISTS (SELECT *
FROM ГРУПА
WHERE ВИКЛАДАЧ.#T = ГРУПА.#КУРАТ0Р)
Використання предикатів ANY, ALL, EXISTS та IN