Внешнее объединение таблиц в предложении WHEREобозначается символом *=. Внешнее объединение является расширением стандартного объединения.
Пример 1. Предположим, что в таблице TEACHER появилась запись {NULL, Федченко, Светлана, Геннадиевна, 01/09/1999}. Запрос о фамилиях преподавателей и предметов, которые они преподают, будет иметь вид:
SELECT TEACHERS. TFAM, PREDMET. PNAME
FROM TEACHER, PREDMET
WHERETEACHERS. TNUM *= PREDMET.TNUM
Результат запроса:
TFAM PNAME
-------------------------------------------
Викулина Физика
Костыркин Химия
Казанко Математика
Позднякова Экономика
Загарийчук Философия
Федченко NULL
Пример 2. Рассмотрим полное внешнее объединение таблиц:
SELECT STUDENTS. SFAM,STUDENTS. SNUM,USP.PNUM,USP.SNUM FROM STUDENTS, USP
WHERE STUDENTS. SNUM =USP.SNUM;
Результат запроса:
SFAM SNUM PNUM SNUM
---------------------------------------------------------------------
Поляков 3412 2001 3412
Поляков 3412 2002 3412
Старова 3413 2003 3413
Гриценко 3414 2005 3414
Нагорный 3416 2004 3416
Пример 3. Вывести информацию о студентах, которым не соответствуют ни один учебный предмет.
SELECT STUDENTS. SFAM, STUDENTS.SNUM, USP.PNUM, USP.SNUM FROM STUDENTS, USP
WHERE STUDENTS. SNUM *=* USP.SNUM;
Результат запрос:
SFAM SNUM PNUM SNUM
-----------------------------------------------------------------------
Поляков 3412 2001 3412
Поляков 3412 2003 3412
Старова 3413 2003 3413
Гриценко 3414 2005 3414
Котенко 3415 NULL NULL
Нагорный 3416 2004 3416