Связывание таблиц
Внешнее связывание
Иногда вам надо, чтобы запрос возвращал все строки из одной или более таблиц, независимо от того, имеют ли они соответствующие строки в другой таблице. Это осуществляется с помощью внешнего связывания, которое может быть левым, правым и полным.
Левое внешнее связывание возвращает все строки из левой таблицы во фразе JOIN и только те строки из правой таблицы, для которых условие связывания истинно (имеет значение TRUE ). Синтаксис для левого связывания следующий:
FROM ЛеваяТаблица LEFT OUTER JOIN ПраваяТаблица ON <условие_связывания>
Например, оператор SELECT, представленный ниже, возвращает все строки в таблице Oils, отвечающие значениям PlantPart из таблицы PlantParts, для которых задан PlantPartID. Если отвечающих значениям строк в таблице PlantParts нет, запрос возвратит NULL в качестве значения PlantPart для строки.
SELECT Oils.OilName, PlantParts.PlantPart FROM Oils LEFT OUTER JOIN PlantParts ON Oils.PlantPartID = PlantParts.PlantPartID
Правое внешнее связывание является противоположностью левого внешнего связывания: оно возвращает все строки из правой таблицы в фразе JOIN и отвечающие условию значения из левой таблицы, в то время как полное внешнее связывание возвращает все строки из обеих таблиц, отвечающие условию.
Создайте левое внешнее связывание с использованием панели диаграмм Diagram Pane
- Откройте конструктор запросов Query Designer для таблицы Oils, щелкнув правой кнопкой мыши на ее имени в рабочей панели Details Pane, укажите на Open Table (Открытие таблицы) и выберите Return All Rows (Показать все строки).
- Отобразите панель диаграмм Diagram Pane.
- Нажмите кнопку Add Table (Добавить таблицу)в панели инструментов конструктора запросов. Конструктор запросов Query Designer отобразит диалоговое окно Add Table (Добавление таблицы).
- Выберите Cautions и OilCautions в списке таблиц, а затем нажмите кнопку Add (Добавить). Конструктор запросов Query Designer добавит таблицы в запрос.
Совет. Вы можете создавать левое внешнее связывание для двух таблиц. Здесь мы используем три таблицы, из которых таблица OilCautions действует как узловая, реализующая отношение много-ко-многим между таблицами Oils и Cautions.
- Нажмите кнопку Close (Закрыть), чтобы закрыть диалоговое окно.
Совет. Вы можете перемещать таблицы в панели диаграмм Diagram Pane, чтобы добиться наилучшего отображения информации.