Проверьте, как это работает!
Часто для получения необходимых ответов требуется создать запрос, выводящий информацию из нескольких таблиц или из сочетания таблиц и запросов.
Начало работы с соединениями
Иногда для получения ответа на вопрос требуется использовать данные из нескольких источников (таблиц или запросов). Например, может потребоваться узнать, сколько клиентов в каком-либо регионе заказали определенный продукт.
При добавлении нескольких источников данных Access использует существующие связи, установленные между ними, либо создает между ними соединения для запроса. Соединение — это один из типов связей между источниками данных в запросе.
Примечание: Они существуют ограниченное время и используются только для запросов. Если вы часто создаете соединение между определенными таблицами, вместо этого вы можете создать между ними постоянную связь.
Внутренние соединения
Большинство соединений являются внутренними. Сведения о внешних соединениях см. в статье Создание запросов с внешними соединениями.
Внутренние соединения возвращают данные из одного источника, только если в другом источнике находятся совпадающие записи. Например, если ваш запрос посвящен продуктам и заказам, будут выводиться данные по продуктам, для которых имеется соответствующий заказ.
Самосоединения
Самосоединениями соединяются две копии одной таблицы или одного запроса. Используйте их для объединения записей из одной таблицы, когда в соединенных полях есть совпадающие значения.
Предположим, у вас есть таблица со всеми сотрудниками вашей организации, включая руководителей. В этой таблице есть поле "Начальник", в которой указан идентификатор руководителя каждого сотрудника.
ИД |
Фамилия |
Имя |
Начальник |
---|---|---|---|
1 |
Коновалова |
Светлана |
5 |
2 |
Авдеев |
Григорий |
|
3 |
Лебедева |
Анастасия |
10 |
4 |
Сазонова |
Мария |
5 |
5 |
Белых |
Николай |
2 |
6 |
Бутусов |
Василий |
10 |
7 |
Воронков |
Иван |
10 |
8 |
Матвеева |
Елена |
10 |
9 |
Белякова |
Дарья |
5 |
10 |
Покровская |
Регина |
3 |
Чтобы найти имя руководителя сотрудника, найдите сотрудника в таблице, найдите идентификатор руководителя в поле Отчеты, а затем найдите идентификатор руководителя в том же поле Сотрудники. Например, Нэнси сообщает руководителю, идентификатор сотрудника которого равен 5— это Стивен Торп.
Чтобы автоматизировать задачу, вы можете дважды добавить таблицу с сотрудниками в запрос, а затем создать самосоединение. При втором добавлении источника данных Access присвоит имени второго экземпляра окончание "_1". Например, при повторном добавлении таблицы "Сотрудники" ее второй экземпляр будет называться "Сотрудники_1". Для отображения имен руководителей каждого сотрудника следует создать соединение между полем "Начальник" из таблицы "Сотрудники" и полем "ИД" из таблицы "Сотрудники_1".
1. Добавьте источники данных
-
На вкладке Создание нажмите кнопку Конструктор запросов.
Добавьте все необходимые таблицы и запросы в качестве источников данных. (Не волнуйтесь. Если вы забудете один из них, у вас по-прежнему есть возможность добавить дополнительные источники данных позже.)
В число источников данных могут входить таблицы, сведения из которых вы хотите отобразить (например, таблица с продуктами), а также таблицы с информацией, которую вы будете использовать в качестве условий.
Обратите внимание, что ранее сохраненные запросы тоже можно использовать как источники данных. Например, если вы уже создали запрос для поиска всех заказов за указанный месяц, можете использовать его в сочетании с таблицей продуктов, чтобы отобразить все продукты, проданные за этот месяц.
2. Соедините связанные источники данных
-
Чтобы самостоятельно создать соединение, перетащите поле из одного источника данных в соответствующее поле в другом источнике данных. По умолчанию Access создаст внутреннее соединение.
При создании большинства связей Access создает внутренние соединения. Они также будут использоваться, если вы включили целостность данных. Однако в некоторых случаях Access может не создать необходимые соединения. Например, если вы добавили существующие запросы в свой новый запрос и не создали связей, соединения не будут созданы автоматически.
3. Выполните запрос
-
Создайте запрос, как обычно: добавьте выходные поля и необходимые условия, а затем выполните или сохраните запрос. Инструкции см. в статье Создание простых запросов.