Внешнее соединение

Если строка из одной таблицы не имеет пары из другой таблицы, она не включается в результирующее множество, возвращаемое многотабличным запросом. Может возникнуть ситуация, когда результат запроса должен включать все строки одной из таблиц, даже если они не имеют подходящей пары во второй таблице. Отсутствующую строку можно включить в результирующее множество запроса, используя оператор внешнего соединения (+). Такая операция называется внешним соединением таблиц, в отличие от описанных выше типов соединений, называемых, также, внутренними соединениями таблиц. Оператор внешнего соединения можно указать только на одной стороне условия соединения в предложении WHERE - на той стороне, где не хватает информации - после имени таблицы. Однако это правило применимо только к Oracle и SQLBase, т.к. понятие внешнего соединения таблиц не вошло в стандарт SQL1 и различные СУБД использовали различные системы записи внешнего соединения таблиц. Некоторые диалекты SQL (например, SQL Server) допускают полное внешнее соединение и вместо символа ‘+’ используют символ ‘*’. Стандарт SQL2, также, допускает полное внешнее соединение таблиц. Условие внешнего соединения не может включать логический оператор OR.