Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ФОРМАТИРОВАНИЕ СВОДНОЙ ТАБЛИЦЫ.docx
Скачиваний:
8
Добавлен:
12.04.2015
Размер:
188.49 Кб
Скачать

Запрос с соединением, использующий from и where

Соединение отношений, которое описывается при помощи предложений FROM и WHERE, можно выполнить, используя сле­дующий синтаксис:

SELECT selectionjist

FROM tablel [tablel_alias], table2 [table2_alias]

WHERE [tablel.]column_namel operator_comparison [ta- ble2.]column_namel

где operator_comparison - оператор сравнения, применяемый при соединении отношений (как правило, это знак равенства).

При записи равенства в предложении WHERE следует обра­щать внимание на то, как записываются имена связанных столб­цов. Если связанные столбцы имеют разные имена, то их можно записывать и без указания имени таблицы. Однако для соблюде­ния однозначности и лучшей обработки команды системой лучше использовать следующую нотацию:

<Table_name>.<Column_name>

Например, выведем список групп студентов (таблица tbIGroups, поле fGroup) с указанием полного названия факультета для каждой из них (таблица tbIFaculties, поле fFacultyFull). Между этими таблицами существует связь посредством первичного и внешнего ключей. Для получения необходимой информации сле­дует приравнять имена связанных столбцов, которые существуют в каждой из указанных таблиц: tbIFaculties.fIDFaculty - первичный ключ, tbIGroups.fIDFaculty - внешний ключ.

SELECT tbIFaculties.fFacultyFull, tbIGroups.fGroup

FROM tbIFaculties, tbIGroups

WHERE tbIFaculties.fIDFaculty = tbIGroups.fIDFaculty;

Для упрощения внешнего вида запроса, а также повышения его удобочитаемости многие СУБД, в том числе и Microsoft Access, поддерживают применение псевдонимов таблиц, указан­ных в предложении FROM. Эти псевдонимы в запросе могут под­ставляться везде, где необходимо использование имени таблицы.

Так, запрос, рассмотренный в предыдущем примере, можно представить в следующем виде:

SELECT f.fFacultyFull, g.fGroup

FROM tbIFaculties f, tbIGroups g

WHERE f.flDFaculty = g.flDFaculty;

Здесь каждой из объединяемых таблиц присваивается однобу­квенный псевдоним: для таблицы tbIFaculties - f (от анлийского faculty - факультет), а для таблицы tbIGroups - g (от английского group - группа).

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

Допустим, необходимо отобразить список групп только меха­нического факультета. Для этого следует создать такой же за­прос, как и для предыдущего примера, только в предложении WHERE, кроме соответствия связанных ключей, предусмотреть проверку еще одного условия: наименование факультета должно быть «Механический». Оба условия нужно связать логическим оператором AND.

Запрос записывается в следующем виде:

SELECT f.fFacultyFull, g.fGroup

FROM tbIFaculties f, tbIGroups g

WHERE f.flDFaculty = g.flDFaculty AND f.fFacultyFull =

'Механический';

В качестве условий могут также использоваться поля, не вклю­ченные в выборку. Например, отобразим список групп только первого курса (поле fCourse таблицы tbIGroups):

SELECT f.fFacultyFull, g.fGroup

FROM tbIFaculties f, tbIGroups g

WHERE f.flDFaculty = g.flDFaculty AND f.fCourse = 1;