Субд лекции

Темы:

. Оператор SELECT

Нельзя в качестве полей, по которым проводится соединение таблиц, использовать поля, имеющие тип MEMO или OLE.

Пусть в БД имеются таблицы «Кафедры» и «Сотрудники». В таблице «Кафедры» присутствуют поля «Код_кафедры», «Наименование_ кафедры_полное» и «Наименование_кафедры_краткое». В таблице «Сотрудники» есть поле Код_кафедры, но отсутствуют наименования кафедр. В предметной области возможны ситуации, что некоторые сотрудники не приписаны ни к одной кафедре, и могут быть кафедры, к которым не приписано ни одного сотрудника.

Тогда, если требуется получить список сотрудников кафедр(ы) и в запросе используется наименование кафедры, следует использовать операцию INNER JOIN.

Кроме операцииINNER JOIN в SQL Access имеются операции LEFT JOIN и RIGHT JOIN. Операции LEFT JOIN и RIGHT JOIN называются в документации по Access внешним объединением[‡‡].

Так, для отбора всех кафедр (в том числе тех, в которых нет ни одного сотрудника) или всех сотрудников (в том числе тех, которые не приписаны ни к какой кафедре) следует использовать операцию LEFT JOIN или RIGHT JOIN соответственно.

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

Операция JOIN выглядит следующим образом:

FROM таблица1 INNER|LEFT|RIGHT JOIN таблица2 ON таблица! поле1 = таблица2.поле2.

Поля связи должны иметь соответствующие друг другу тип данных и длину. Имена полей связи могут различаться, однако при проектировании БД желательно давать одинаковые имена полям, которые имеют одинаковое смысловое значение, и, напротив, поля, различающиеся по смыслу, следует называть разными именами.

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

предыдущаяследующая