Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Інформатика / Базы данных-конспект.doc
Скачиваний:
17
Добавлен:
15.01.2022
Размер:
419.84 Кб
Скачать

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

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

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

При использовании внешних соединений MS Access включает все записи из таблицы, образующей одну сторону отношений, но только совпадающие таблицы, образующие вторую сторону отношений.

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

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

  • вызвать бланк Запроса и добавить таблицы Заказы и Клиенты

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

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

  2. объединение всех записей из "Клиенты" и только тех записей из Заказы, в которых связанные поля совпадают

  3. объединение всех записей из "Заказы" и только тех записей из "Клиенты", в которых связанные поля совпадают.

Если выбранный второй режим, то Линия связи между таблицами изменит свой вид:

Клиенты

1

Заказы

Код клиента

Код клиента

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

Заказы Клиенты

Поля

Код клиента

Фамилия

Заказано

Табл

Клиенты

Клиенты

Заказы

Усл.отб.

Если просмотреть данный запрос без условия в поле Заказано is Null, то он будет иметь следующий вид:

Код клиента

Фамилия

Заказано

126

127

128

129

Иванов

Петров

Сидоров

Печкин

40

60

80

При вводе условия is Null из запроса исключается все строки с не нулевыми полями Заказано (его можно не выводить на экран).

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

При установлении внешней связи, вытащив поля Код клиента из таблицы Клиенты, вы получите полный список клиентов с их кодами, а вытащив его из таблицы Заказы, получим следующий вид:

Код клиента

Фамилия

Заказано

126

127

128

Иванов

Петров

Сидоров

Печкин

40

60

80

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

Соседние файлы в папке Інформатика