Иллюстрированный самоучитель по Access 2002

Виды соединений


В зависимости от решаемых задач соединение между таблицами в запросах может быть нескольких видов.

Наиболее распространенным является

внутреннее соединение (эквисоедшение).

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

в таблицах имеются поля с одинаковыми именами и согласованными типами, причем одно из полей является ключевым;

соединение было явно задано в окне

Схема данных

(Relationships).

Замечание

"Согласованные типы" в большинстве случаев означают одинаковые типы. Исключением является поле типа Счетчик, которое может иметь размер Длинное целое или Код репликации и может связываться с числовыми полями соответствующего размера.

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

Для создания запроса, объединяющего все записи из одной таблицы, и только те записи из второй, в которых связанные поля совпадают, используют



внешнее соединение.

В этом случае независимо от того, имеются ли соответствующие записи во второй таблице, все записи первой попадают в результирующее множество запроса.

Если необходимо связать данные любым отношением, кроме отношения равенства, используют

соединение по отношению

или

тэта-соединение).

Соединение по отношению не отображается в окне

Схема данных

(Relationships) и не выводится в окне Конструктора запросов.

Для обозначения внутренних соединений в Access используются зарезервированные слова ANSI SQL INNER JOIN, а для указания внешних соединений — слова LEFT JOIN или RIGHT JOIN. Выражение WHERE <поле1>=<поле2> соответствует внутреннему соединению, a WHERE поле1>поле2 — соединению по отношению (одному из таких соединений).

Для связывания данных в одной таблице применяют

рекурсивное соединение.

Оно создается путем добавления в запрос копии таблицы (в результате чего Access назначает псевдоним для копии) и связывания полей идентичных таблиц.

CompEbook.ru Железо, дизайн, обучение и другие



Содержание раздела