русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Связанные подзапросы


Дата добавления: 2015-07-09; просмотров: 776; Нарушение авторских прав


Связанный подзапрос – это подзапрос, зависящий от информации, предоставляемой главным запросом.

В следующем примере в подзапросе определение связи между таблицами TARIFF во внутреннем подзапросе и AIRPORT использует псевдоним таблицы AFROM, определенный в главном запросе. Изменим условия предыдущего запроса – найдем номер авиалинии, аэропорт вылета, вид салона и стоимость самого дешевого билета для рейсов вылетающих из города «Пермь», т.е. от предыдущего запроса новый отличатся тем, что мы ищем только по тарифам связанным с аэропортами вылета находящимися в городе «Пермь». Для того чтобы это сделать нужно во внешний запрос добавить объединение с таблицей CITY и наложить условие (предложение WHERE) по названию города, во внутреннем запросе нужно искать минимум не из всех возможных строк таблицы TARIFF, а только из тех, у которых код аэропорта вылета (TR_AP_FROM) совпадает с допустимыми аэропортами.

Получаем следующий запрос:[44]

SELECT T.TR_AL_NUM AS "Номер Авиалинии",

AFROM.AP_NAMEAS"Аэропорт вылета",

ATO.AP_NAMEAS"Аэропорт прилета",

S.SL_NAMEAS"Салон",

T.TR_COSTAS"Стоимость"

FROM TARIFFT

INNER JOIN AIRPORT AFROMON (T.TR_AP_FROM=AFROM.AP_CODE)

INNER JOIN AIRPORT ATOON (T.TR_AP_TO=ATO.AP_CODE)

INNER JOIN SALONSON (T.TR_SL_TYPE=S.SL_TYPE)

INNER JOIN CITY CON (AFROM.AP_CT_CODE=C.CT_CODE)

WHERE (C.CT_NAME='Пермь')

AND (T.TR_COST= (SELECT MIN(TR_COST) FROMTARIFF

WHERE TR_AP_FROM=AFROM.AP_CODE))

Другим примером может быть использование вложенного подзапроса с функцией COUNT. Найдем фамилию, имя, отчество членов экипажа совершивших в феврале 2008 года более одного полета, иными словами тех, для кого в таблице EQUIPAGE содержится более одной записи датируемой февралем.[45]

SELECT PR_NAME2AS"Имя",



PR_NAME3AS"Отчество",

PR_NAMEAS"Фамилия"

FROM PERSON

WHERE ( SELECT COUNT(*) FROM EQUIPAGE

WHERE EQ_FL_DATEBETWEEN'1.02.08'AND'29.02.08'

AND EQ_PR_CODE=PERSON.PR_CODE) >1

Самый внутренний оператор SELECT подсчитывает количество строк исходной таблицы EQUIPAGE попадающих на февраль, имеющих одно и то же значение кода человека. Предложение WHERE во внешнем запросе задает для выборки только те строки, где это количество больше единицы. Мы ссылаемся на коды людей во внутреннем операторе SELECT и на коды людей в операторе SELECT более высокого уровня.

В результате получаем результат:

Листинг 23. Список членов экипажа совершивших в феврале 2008 года более одного полета

Имя Отчество Фамилия
Имя Отчество Фамилия
Евгений Андреевнич Болотов
Марина Владимировна Волченко
Анна Валерьевна Грунтович


<== предыдущая лекция | следующая лекция ==>
SELECT DISTINCT | ЗАМЕЧАНИЕ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.017 сек.