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

Создание запросов с внешними связями

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

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

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

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

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

Левые и правые внешние связи

При использовании внешних связей таблица, из которой отображаются все записи, называется базовой. Таблица, из которой отображаются лишь некоторые (совпадающие) записи, называется вторичной.

В диалоговом окне Параметры объединения описано, что отображается с разными типами соединений.

Снимок экрана: три таблицы и диалоговое окно "Параметры объединения"

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

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

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

  3. Правое внешнее соединение. Будут возвращаться все записи из таблицы справа таблицы и лишь те записи из таблицы слева, в которых значения соединенных полей совпадают. Например, могут отображаться все продукты, включая те, для которых отсутствуют заказы. В этом случае поля "Номер заказа" и "Количество" будут пустыми.

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

1. Добавьте источники данных

  • На вкладке Создание нажмите кнопку Конструктор запросов.

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

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

2. Добавьте соединение

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

    Снимок экрана: соединение между двумя таблицами

3. Изменение соединения

  1. Дважды щелкните необходимую линию, изображающую соединение.

  2. В диалоговом окне Параметры объединения выберите второй или третий пункт, чтобы создать внешнее соединение. После этого нажмите кнопку ОК.

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

    Снимок экрана: диалоговое окно "Параметры объединения", выделено имя левой таблицы

4. Выполните запрос

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

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

Создание простых запросов

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

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

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

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

Давайте рассмотрим этот вопрос более подробно.

Таблица, которая возвращает ВСЕ данные называется базовой, а таблица, которая возвращает СООТВЕТСТВИЯ, — вспомогательной.

Какая таблица базовая, а какая — вспомогательная, зависит от направления соединения.

Если используется правое внешнее соединение, то базовой будет таблица справа. Если же используется левое внешнее соединение, то базовой будет таблица слева.

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

Применим знания на практике.

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

Мы видим, что Access использовал связь «один ко многим» как ШАБЛОН для соединения, а это значит, что перед нами внутреннее соединение.

Добавим поля «Наименование товара» и «Количество». Теперь, если мы нажмем кнопку «Выполнить», запрос вернет только данные о заказанных товарах.

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

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

Стрелка указывает, что это внешнее соединение. Она направлена в сторону вспомогательной таблицы. Нажмите кнопку «Выполнить», отсортируйте данные по возрастанию, и вы увидите, какие товары не продаются.

Что произойдет, если мы воспользуемся правым внешним соединением?

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

Если мы посмотрим на диалоговое окно параметров объединения, то поймем почему.

Мы возвращаем все данные из таблицы «Сведения о заказах» и только СООТВЕТСТВИЯ из таблицы «Товары». Другими словами, мы видим только товары для соответствующего заказа, и такой же результат возвращает нам внутреннее соединение.

Вы увидели, как использовать внешние соединения в запросе на выборку из нескольких источников данных. Итак, запомните — необходимо хорошо продумывать соединения и корректировать их, пока не получите необходимый результат.

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

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

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

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

×