Управление данными с помощью запросов

Создание запросов с несколькими источниками данных

Браузер не поддерживает видео. Установите Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.

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

Начало работы с соединениями

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

При добавлении нескольких источников данных 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. Выполните запрос
  • Создайте запрос, как обычно: добавьте выходные поля и необходимые условия, а затем выполните или сохраните запрос. Инструкции см. в статье Создание простых запросов.

Вам нужны дополнительные возможности?

Обучение работе с Excel

Обучение работе с Outlook

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

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

и узнаете о различных типах доступных соединений.

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

Вы открываете конструктор запросов, выбираете таблицы или запросы и добавляете поля.

Но есть определенные нюансы.

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

Например, если вам нужно узнать, какие товары входят в ряд заказов, необходимо установить соответствие между заказами и товарами.

Для этого используется так называемое соединение.

Соединение сравнивает данные в двух общих полях из каждого источника.

Соединение отвечает за соответствие данных в каждом поле.

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

Другой тип соединения возвращает ВСЕ данные из одного поля и только СООТВЕТСТВУЮЩИЕ данные из другого.

В этом примере запрос покажет, в каких заказах нет определенного товара.

Когда вы создали связи между таблицами, Access сформировал СОЕДИНЕНИЕ для каждой связи.

Access использует связи в качестве ШАБЛОНОВ для соединений, поэтому чаще всего соединенные поля будут первичными и внешними ключами.

Однако это необязательно. Вы также можете соединять несвязанные источники.

Если у вас действительно есть два связанных источника данных и вы добавите их в конструктор запросов, вам может показаться, что вы создали связь, но это не так. Access лишь отображает тип связи, использованный в качестве шаблона для соединения.

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

Кроме того, обратите внимание, что мы не добавили соединенные поля в бланк. Это и не нужно, так как Access добавляет их в фоновом режиме.

Можно выполнить запрос и получить результат.

Теперь более подробно рассмотрим соединения и обратим внимание на несколько ключевых моментов.

Во-первых, вы можете задать или изменить тип соединения, щелкнув линию связи правой кнопкой мыши или дважды коснувшись ее и выбрав пункт Параметры объединения.

Эти параметры определяют тип соединения в запросе. Это наиболее распространенные типы соединений.

Этот параметр создает внутреннее соединение. Это тип соединения, который возвращает совпадающие данные из ОБЕИХ таблиц.

Access создает его при формировании связи.

Второй параметр создает левое внешнее соединение, т. е. запрос возвращает ВСЕ данные из таблицы слева и только СООТВЕТСТВУЮЩИЕ данные из другой таблицы.

Третий параметр создает ПРАВОЕ внешнее соединение, и вы уже, наверное, догадались, что это значит.

Запрос возвращает ВСЕ данные из таблицы справа и только СООТВЕТСТВУЮЩИЕ данные из другой таблицы.

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

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

Важно не забывать, что связи и соединения — это не одно и то же.

СВЯЗЬ — это набор правил, управляющий целостностью данных, т. е. способами их добавления и удаления.

СОЕДИНЕНИЕ определяет, как ваш запрос сопоставляет данные.

Однако иногда эти понятия непросто различить.

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

Например, вы можете удалить соединения без ущерба для базы данных, а вот связи так удалить нельзя.

Кроме того, вы можете добавить соединения, если связи даже не существуют.

Например, вы можете соединить поле таблицы с полем запроса, если в этих полях содержится совпадающий или сопоставимый тип данных.

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

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

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

×