Главная > Построение баз данных в среде Oracle
НАПИШУ ВСЁ ЧТО ЗАДАЛИ
СЕКРЕТНЫЙ БОТ В ТЕЛЕГЕ
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

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

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO

2.2.7 Чтение данных из нескольких таблиц с применением вло­женных запросов

Все запросы, рассмотренные ранее, считывали данные из одиночной таблицы. Бывает, однако, что для получения требуемой информации необ­ходимо обработать более одной таблицы. Предположим, например, что мы хотим знать названия работ, которые были проданы галереей дороже 20000. Названия работ хранятся в таблице WORK, а стоимости продаж — в таблице TRANSACTION.

Если бы мы знали, что дороже 20000 были проданы работы с номерами 505, 506 и 530, мы могли бы получить названия этих работ с помощью следующего оператора:

SELECT Title
FROM WORK
WHERE WorkID IN (505, 506, 530);

Но в том-то и дело, что в условии задачи номера работ нам не заданы. Ничто, однако, не мешает нам узнать эти номера, инициировав следующий запрос:

SELECT DISTINCT WorkID
FROM TRANSACTION
WHERE AskingPrice > 20000;

Результатом будет таблица:

505
506
530

Теперь мы можем объединить эти два SQL-оператора при помощи так называемого вложенного запроса (subquery):

SELECT Title
FROM WORK
WHERE WorkID IN
(SELECT DISTINCT WorkID
FROM TRANSACTION
WHERE AskingPrice > 20000);

Результатом этого оператора будет следующее:

Mystic Fabric
Mi Vida
Northwest by Night

И действительно, здесь мы видим названия работ, которые были про­даны галереей дороже 20000. Подобным образом вложенность запросов может быть расширена до трех, четырех и более уровней.

 

1
Оглавление
email@scask.ru