русс | укр

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

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

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

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


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

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


Дата добавления: 2013-12-24; просмотров: 888; Нарушение авторских прав


Внутреннее соединение

Выборка данных из нескольких таблиц

 

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

Существует три вида соединений: внутреннее, внешнее и перекрестное. Для объединения трех и более таблиц можно применять последовательность соединений.

Для соединения таблиц необходимо раздел FROM дополнить ключевыми словами JOIN, которое определяет соединяемые таблицы и метод соединения, и ON, указывающее общие для таблиц поля.

 

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

Например, в таблице Product нормализованной базы данных AdventureWorks храниться только идентификатор категории товара. Чтобы получить список товаров с указанием их категорий, необходимо соединить таблицы Product и ProductSubcategory:

 

SELECT Product.Name, ProductSubcategory.Name, Product.ListPrice

FROM Production.Product INNER JOIN Production.ProductSubcategory

ON Product.ProductSubcategoryID = ProductSubcategory.ProductSubcategoryID

 

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

Обратите внимание, что в разделе FROM необходимо указать имя схемы Production, а в остальных случаях перед указанием поля используется имя таблицы Product и ProductSubcategory для разрешения конфликтов, т.к. в обеих таблицах присутствуют поля Name.

 

Такое соединение также возвращает объединенные записи, соответствующие условию объединения. Однако левые и правые соединения возвращают записи и не соответствующие указанному условию объединения. Такие соединения применяются для получения полного набора записей одной из таблиц.



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

Например, следующий запрос возвращает имя контактного лица и дату размещения заказа:

 

SELECT FirstName, LastName, OrderDate

FROM Person.Contact LEFT JOIN Sales.SalesOrderHeader

ON Contact.ContactID = SalesOrderHeader.ContactID

 

Для лиц, не размещавших заказы, в поле OrderDate содержится значение NULL.

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

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

 



<== предыдущая лекция | следующая лекция ==>
Условие отбора | Аналитическая выборка данных


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


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

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

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


 


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

 
 

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

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