2.18.   Внешнее объединение

Часто бывает полезна операция объединения двух запросов, в которой второй запрос выбирает строки, исключенные пер­вым. Такая операция называется внешним объединением.

Рассмотрим пример. Пусть в таблице STUDENT имеются запи­си о студентах, в которых не указан идентификатор университета. Требуется составить список студентов с указанием наименова-

Соединение, использующее предикаты, основанные на ра­венствах, называется эквисоединением. Рассмотренный пример соединения таблиц относятся к виду так называемого внутрен него (INNER) соединения. При этом соединяются только те стро­ки таблиц, для которых истинным является предикат, задавае­мый в предложении ON выполняемого запроса.

Приведенный выше запрос может быть записан иначе, с ис­пользованием ключевого слова JOIN.

SELECT STUDENT.SURNAME, UNIVERSITY.UNIV_NAME, STUDENT.CITY FROM STUDENT INNER JOIN UNIVERSITY ON STUDENT.CITY   =  UNIVERSITY.CITY;

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

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

SELECT * FROM STUDENT JOIN UNIVERSITY;

что эквивалентно

SELECT * FROM STUDENT, UNIVERSITY ;

Заметим, что в СУБД Oracle задаваемый стандартом языка SQL оператор JOIN не поддерживается.