Запити можуть керувати іншими запитами. Це робиться шляхом вкладання одного запиту всередину умови другого запиту. Зазвичай внутрішній запит генерує значення, яке перевіряється в умові зовнішнього запиту, який визначає вірне воно чи ні. Наприклад, відоме ім’я торгового агента – Шостак Т.Х., але не відомий його код (cod). Необхідно вибрати всі здійснені ним операції з таблиці „Обсяг операцій”(obsag). Запит матиме наступний вигляд:
select*
fromobsag
wherecod = ( selectcod
from stat
whereprizv =’Шостак Т.Х.’)
Щоб виконати зовнішній (головний) запит, спочатку виконується внутрішній запит (підзапит) всередині оператора where.При виконанніпідзапиту розглядається таблиця „Штат рекламних агентів” (stat), в якій вибираються рядки, де поле prizv рівне ‘Шостак Т.Х.’, далі вибирається значення поля cod. Єдиним рядком буде cod =101. Далі отримане значення поміщається в умову головного запиту, замість самого підзапиту, так що умова набуде вигляду:
wherecod = 101
В результаті головний запит виконується як звичайний.
Приклади вкладених запитів:
select*
fromobsag
wheresuma < ( select avg(suma)
from obsag)
В результаті виконання запиту отримаємо дані про операції, здійснені на суму меншу за середньоарифметичну.
select*
fromstat
wherecod = ( selectcod
from obsag
wheremonth (data)=6 )
В результаті виконання запиту отримаємо cписок рекламних агентів, які здійснили операції у червні.