русс | укр

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

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

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

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


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

Внешние соединения


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


При выполнении операции соединения данные из двух таблиц комбинируются с образованием пар связанных строк, в которых значения сопоставляемых столбцов являются одинаковыми. Если одно из значений в сопоставляемом столбце одной таблицы не совпадает ни с одним из значений в сопоставляемом столбце другой таблицы, то соответствующая строка удаляется из результирующей таблицы.

Рассмотрим пример.

Таблица Branch (информация об отделениях компании):

branchNo bCity
B003 Glasgow
B004 Bristol
B005 London

Таблица PropertyForRent (информация о сдаваемых в аренду объектах):

propertyNo pCity
PA14 Aberdeen
PL94 London
PG4 Glasgow

Выполним обычное (внутреннее) соединение этих таблиц с помощью следующего оператора SQL:

SELECT b.*, p.*

FROM Branch b, PropertyForRentl p

WHERE b.bCity = p.pCity;

Результат выполнения запроса:

branchNo bCity propertyNo pCity
B003 Glasgow PG4 Glasgow
B005 London PL94 London

Результат выполнения запроса – информация об отделениях компании и сдаваемых в тех же городах в аренду объектах недвижимости. Как видно, в результате отсутствуют отделение компании в городе Bristol (в этом городе нет сдаваемых в аренду объектов) и объект в городе Aberdeen (в этом городе нет отделений компании). Чтобы в результат запроса попали также записи, которым не соответствует запись из другой таблицы, используется внешнее соединение: левое соединение (left join) – в результат попадают все записи из левой таблицы, правое соединение (right join) – все записи из правой таблицы, полное соединение (full join) – все записи из обеих таблиц.

 

Пример 11. Левое внешнее соединение. Перечислите отделения компании и сдаваемые в аренду объекты, которые расположены в одном и том же городе, а также прочие отделения компании, не удовлетворяющие условию запроса.



SELECT b.*, р.*

FROM Branch b LEFT JOIN PropertyForRent p ON b.bCity = p.pCity;

Результат выполнения запроса:

branchNo bCity propertyNo pCity
B003 Glasgow PG4 Glasgow
B005 London PL94 London
B004 Bristol NULL NULL

 

Пример 11. Правое внешнее соединение. Перечислите отделения компании и сдаваемые в аренду объекты, которые расположены в одном и том же городе, а также все остальные объекты собственности, не удовлетворяющие условию запроса.

SELECT b.*, р.*

FROM Branch b RIGHT JOIN PropertyForRent p ON b.bCity = p.pCity;

Результат выполнения запроса:

branchNo bCity propertyNo pCity
B003 Glasgow PG4 Glasgow
B005 London PL94 London
NULL NULL PA14 Aberdeen

 

Пример 12. Полное внешнее соединение. Перечислите отделения компании и сдаваемые в аренду объекты, расположенные в одном и том же городе, а также все остальные отделения и объекты собственности, не удовлетворяющие условию запроса.

branchNo bCity propertyNo pCity
B003 Glasgow PG4 Glasgow
B005 London PL94 London
B004 Bristol NULL NULL
NULL NULL PA14 Aberdeen

 



<== предыдущая лекция | следующая лекция ==>
Многотабличные запросы | Комбинирование результирующих таблиц (операции UNION, INTERSECT и EXCEPT)


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


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

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

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


 


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

 
 

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

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