Соединение равенства
Соединение равенства, используемое чаще других, обычно производится по общему для нескольких таблиц полю (которое, как правило, является первичным ключом).
Синтаксис оператора выборки для этого способа соединения таблиц следующий:
SELECT Таблица1.поле1. Таблица2.поле2 {,… ТаблицаN. полеN}
FROM поле1, поле2 { полеN}
WHERE Таблица1.о6щее_поле1 = Таблица2.общее_поле1
{AND Таблица1.общее_поле2 = Таблица2.общее поле2}
При формировании запроса на выборку из нескольких таблиц в списке полей после слова SELECT перед именем поля обычно указывается имя таблицы, к которой это поле относится. Такое действие называется квалификацией полей запроса. Квалификация обязательна только для полей, имеющих одинаковые имена в разных таблицах, из которых производится выборка.
Рассмотрим пример выборки из двух таблиц посредством соединения равенства. Выберем из таблицы Клиенты поля, содержащие сведения об именах клиентов, а из таблицы Продажи — поля, в которых содержатся сведения о покупках, сделанных клиентами. Для связывания таблиц воспользуемся общим для обеих таблиц полем Код клиента:
SELECT Клиенты.Фамилия. Клиенты.Имя,
Клиенты.Отчество. Продажи.Продано
FROM Клиенты, Продажи
WHERE Клиенты.[Код клиента]=Продажи.[Код клиента]
Результат выполнения данного запроса приведен на рис. 29.
Рис. 29. Использование соединения равенства для выборки из двух таблиц
При связывании таблиц можно использовать предложение группировки. Изменим рассмотренный запрос (см. рис. 11.29) таким образом, чтобы результаты были сгруппированы по полям Фамилия, Имя, Отчество, и для каждого клиента выводилось суммарное количество покупок:
SELECT Клиенты.Фамилия. Клиенты.Имя. Клиенты.Отчество,
SUM(Продажи.Продано) AS [Количество покупок],
FROM Клиенты, Продажи, Товары
WHERE Клиенты.[Код клиента]=Продажи.[Код клиента]
GROUP BY Клиенты.Фамилия. Клиенты.Имя. Клиенты.Отчество
Результаты, возвращаемые этим запросом, приведены на рис. 30.
Рис.30. Пример группировки результатов выборки из двух таблиц
Выборка из трех таблиц проводится аналогичным образом, только в предложении WHERE необходимо указать условие связи с третьей таблицей. Для примера дополним предыдущий запрос (см. рис. 30) таким образом, чтобы в выборку была включена информация о наименовании товара из таблицы Товары:
SELECT Клиенты.Фамилия. Клиенты.Имя. Клиенты.Отчество,
SUM(Продажи.Продано) AS [Количество покупок],
Товары.Наименование
FROM Клиенты, Продажи, Товары
WHERE Клиенты.[Код клиента]=Продажи.[Код клиента] AND
GROUP BY Клиенты.Фамилия. Клиенты.Имя. Клиенты.Отчество
Товары.Наименование
Результат выполнения данного запроса показан на рис.31.
Рис. 31. Пример выборки из трех таблиц
Дата добавления: 2015-10-21; просмотров: 740;