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

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

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

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

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

Автоматическое создание соединений в Access

Access автоматически создаёт внутренние соединения, если:

Замечание

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

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

Если необходимо включить в результат запроса все записи одной таблицы, даже если во второй таблице нет соответствующих данных, используют внешнее соединение (LEFT JOIN или RIGHT JOIN). Оно возвращает все записи из "главной" таблицы и только те записи из "подчинённой", у которых есть совпадение.

Соединение по отношению (тэта-соединение)

Для связывания данных по условию, отличному от равенства, используют соединение по отношению (тэта-соединение). Оно применяется в случаях, когда требуется, например, отобрать записи с датами больше определённого значения или сравнивать числовые данные.

Такое соединение не отображается в окне Схема данных и не выводится в окне Конструктора запросов.

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

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

Использование SQL-синтаксиса для соединений

В Microsoft Access SQL соединения обозначаются следующим образом: