КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Множественные объединенияКак только вы освоились с внутренними и внешними объединениями, Access подбрасывает вам новую функциональную возможность. Многие запросы не ограничиваются одним объединением. Они используют три, четыре и больше объединений для соединения данных из многих связанных таблиц. Несмотря на то, что поначалу это кажется устрашающим, ничего сложного в этом нет.
Рис. 6.23. Если вы хотите выяснить, кто заказал каждый продукт, вам понадобится связанная таблица Orders, а затем придется перейти к связанной таблице Customers Даже если вы не хотите отображать какие-либо данные из таблицы Orders, вам все равно не обойтись без этого двухшагового процесса. На верхнем рисунке показан запрос, реализующий этот процесс, а на нижнем — результат, который вы получите после выполнения запроса Множественные объединения — всего лишь способ включения дополнительной связанной информации в ваш запрос. При наличии нескольких объединений каждое из них выполняется точно так же, как если бы оно было одним в запросе. Для использования множественных объединений добавьте в запрос все нужные вам таблицы с помощью диалогового окна Добавление таблицы,убедитесь, что между таблицами появились линии объединения и затем выберите, какие хотите, поля. Программе Access почти всегда хватает интеллекта, чтобы понять, что вы собираетесь делать. На рис. 6.22 показан пример, в котором у таблицы-потомка два родителя, способных внести некоторую дополнительную информацию.
Рис. 6.24. Вы видите, как определить список курсов, содержащий рядом с каждым курсом имя и фамилию преподавателя, ведущего курс. На верхнем рисунке показана нужная вам структура запроса, а на нижнем — результат Иногда нужная вам информация находится в таблице, которая непосредственно не связана с основной таблицей запроса. Обратите внимание на таблицу OrderDetails,которую компания Boutique Fudge использует для перечисления всех товаров в заказе клиента. Сама по себе таблица OrderDetaitsсвязана не с клиентом, заказавшим товары, а со связанной записью о заказе (см. разд. "Заказ товаров" главы 5, в котором обсуждается этот проект БД). Если вы хотите получить сведения о том, кто заказал каждый товар, следует добавить в запрос таблицы OrderDetails, Ordersи Customers,как показано на рис. 6.23. Множественные объединения незаменимы, если у вас есть отношение "многие-ко-многим" со связующей таблицей (см. разд. "Отношение "многие-ко-многим"" главы 5), как между преподавателями и курсами. Как вы помните из главы 5, музыкальная школа Cacophone Studios использует промежуточную таблицу для отслеживания назначений преподавателей для ведения конкретных курсов. Если вы хотите получить список учебных курсов, дополненный именем и фамилией преподавателя, ведущего курс, придется создать запрос с тремя таблицами: Classes, Teachers и Teachers_Classes(рис. 6.24).
|