2.2.7 Чтение данных из нескольких таблиц с применением вложенных запросовВсе запросы, рассмотренные ранее, считывали данные из одиночной таблицы. Бывает, однако, что для получения требуемой информации необходимо обработать более одной таблицы. Предположим, например, что мы хотим знать названия работ, которые были проданы галереей дороже 20000. Названия работ хранятся в таблице WORK, а стоимости продаж — в таблице TRANSACTION. Если бы мы знали, что дороже 20000 были проданы работы с номерами 505, 506 и 530, мы могли бы получить названия этих работ с помощью следующего оператора: SELECT Title Но в том-то и дело, что в условии задачи номера работ нам не заданы. Ничто, однако, не мешает нам узнать эти номера, инициировав следующий запрос: SELECT DISTINCT WorkID Результатом будет таблица: 505 Теперь мы можем объединить эти два SQL-оператора при помощи так называемого вложенного запроса (subquery): SELECT Title Результатом этого оператора будет следующее: Mystic Fabric И действительно, здесь мы видим названия работ, которые были проданы галереей дороже 20000. Подобным образом вложенность запросов может быть расширена до трех, четырех и более уровней.
|