Пример 5. Полное внешнее соединение
Найдите номера руководителей отделов, названия отделов и их фамилии. В том же запросе определите служащих которые не руководят отделами и отделы, которыми не руководят.
Используем полное внешнее соединение этих таблиц, которое выглядит следующим образом:
SELECT mngr_no, department, last_name FROM employee e FULL JOIN department d ON d.mngr_no= e.dept_no
MNGR_NO DEPARTMENT LAST_NAME
======= ========================= ============
105 Corporate Headquarters
85 Sales and Marketing
2 Engineering
46 Finance
Marketing
Software Products Div.
Software Development
9 Quality Assurance
15 Customer Support
107 Consumer Electronics Div.
20 Research and Development
94 Customer Services
11 Field Office: East Coast
72 Field Office: Canada
34 Pacific Rim Headquarters
118 Field Office: Japan
Field Office: Singapore
36 European Headquarters
141 Field Office: Switzerland
134 Field Office: France
121 Field Office: Italy Osborne
Nelson
Young
Lambert
Johnson
Forest
Weston
Lee
Hall
Young
Papadopoulos
Fisher
Bennet
De Souza
Baldwin
Reeves
Stansbury
Phong
Ramanathan
Steadman
Nordstrom
Leung
O'Brien
Burbank
Sutherland
Bishop
MacDonald
Williams
Bender
Cook
Brown
Ichida
Page
Parker
Yamamoto
Ferrari
Yanowski
Glon
Johnson
Green
Montgomery
Guckenheimer
В случае полного внешнего соединения в результирующую таблицу помещаются не только те строки, которые имеют одинаковые значения в сопоставляемых столбцах, но и все остальные строки исходных таблиц, не нашедшие себе соответствия. В этих строках все столбцы той таблицы, в которой не было найдено соответствия, заполняются значениями NULL.
Обратите внимание, что в результатах всех вариантов внешних соединений присутствует та единственная строка, которая является результатом применения внутреннего соединения.
