FROM inst INNER JOIN rasp ON

inst.Fam=rasp.Prep WHERE (inst.Kaf='Иностранный язык')

Однако более просто такого же результата можно добиться при выполнении следующего запроса (такой способ намного проще и на практике используется гораздо чаще):

SELECT rasp.* FROM inst, rasp

WHERE
(inst.Kaf='Иностранный язык')

AND (inst.Fam=rasp.Prep)

Этот способ также обладает тем преимуществом, что он поз­воляет устанавливать связь сразу между несколькими таблицами, а не только между двумя. Следует также отметить, что в условии

связи кроме знака равенства допустимо использовать и любые другие операторы сравнения.

Как видно из приведенных запросов, перед именами полей указаны имена соответствующих таблиц. Вообще говоря, если имена полей в разных таблицах не совпадают, указывать имена этих таблиц не обязательно, однако все же лучше задавать, к ка­кой таблице относится каждое поле (когда поля таблиц имеют одинаковые имена, то имя таблицы перед именем поля приводит­ся обязательно). Если таблица имеет длинное имя, то вместо него рекомендуется использовать псевдоним, указываемый для каждой таблицы в секции FROM.Делается это следующим образом:

SELECT DISTINCT a.Fam, b.Grup FROM inst a, rasp WHERE a.Fam=b.Prep

В результирующий набор данных войдут неповторяющиеся записи, отражающие информацию о том, в каких группах прово­дит занятия каждый преподаватель. В приведенном запросе вме­сто имен таблицы применены псевдонимы: а— для таблицы instи b- для таблицы rasp.

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

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

Какая из таблиц будет ведущей, определяет вид соединения:

LEFT- левое внешнее соединение, при котором ведущей является таблица, расположенная в описании слева от описателя вида соединения;

RIGHT- правое внешнее соединение, при котором ведущей является таблица, расположенная в описании справа от описателя вида соединения;

FULL- полное внешнее соединение, при котором ведущими являются обе таблицы. В результирующий набор данных включаются записи обеих таблиц по следующему алгоритму. Прежде всего, в набор данных включаются все записи, удовлетворяющие условию соединения. Параллель­но с этим добавляются записи первой таблицы, не удовле­творяющие условию соединения. Им в соответствие ставятся пустые записи. Аналогичным образом включаются в набор данных все не удовлетворяющие условию соедине­ния записи второй таблицы, которые также объединяются с пустыми записями.

Рассмотрим пример левого внешнего соединения, построенно­го на основе таблиц, содержащих список преподавателей институ­та и расписание занятий, которые были описаны выше.








Дата добавления: 2014-12-01; просмотров: 841;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.