Проверьте, как это работает!
Часто для получения необходимых ответов требуется создать запрос, выводящий информацию из нескольких таблиц или из сочетания таблиц и запросов.
Начало работы с соединениями
Иногда для получения ответа на вопрос требуется использовать данные из нескольких источников (таблиц или запросов). Например, может потребоваться узнать, сколько клиентов в каком-либо регионе заказали определенный продукт.
При добавлении нескольких источников данных 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. Выполните запрос
- Создайте запрос, как обычно: добавьте выходные поля и необходимые условия, а затем выполните или сохраните запрос. Инструкции см. в статье Создание простых запросов.