Пример 3. Левое внешнее соединение
Найдите номера руководителей отделов, названия отделов и их фамилии. В том же запросе определите служащих, которые не руководят отделами.
Используем левое внешнее соединение этих двух таблиц, которое выглядит следующим образом:
SELECT mngr_no, department, last_name FROM employee e LEFT JOIN department d ON d.mngr_no= e.dept_no
MNGR_NO DEPARTMENT LAST_NAME
======= =================== ============
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
121 Field Office: Italy Osborne
Montgomery
Guckenheimer
В этом примере за счет применения левого внешнего соединения в результирующую таблицу попали не только те строки, в которых имеется соответствие, но также та строки из первой из соединяемых таблиц (левой), которая не нашли себе соответствия во второй таблице (правой). В этой строке все поля второй таблицы заполнены значениями NULL.
Пример 4. Правое внешнее соединение
Найдите номера руководителей отделов, названия отделов и их фамилии. В том же запросе определите отделы, которыми не руководят.
Используем правое внешнее соединение этих двух таблиц, которое выглядит следующим образом:
SELECT mngr_no, department, last_name FROM employee e RIGHT 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
В этом примере при выполнении правого внешнего соединения в результирующую таблицу были включены не только та строка, которая имеет одинаковые значения в сопоставляемых столбцах, но также и те строки из второй (правой) таблицы, которые не нашли соответствия со строками в первой (левой) таблице. В этой строке все поля из первой таблицы получили значения NULL.
