Внешние соединения
Внешние соединения
В отличие от внутреннего соединения оператор внешнего соединения выбирает строки участвующих таблиц, даже если в некоторых случаях не найдено соответствие. Когда полное соответствие строк не может быть сформировано соединением, тогда "отсутствующие" элементы данных формируются как NULL. Другое название внешнего соединения - включающее соединение.
Каждое внешнее соединение имеет левую и правую часть, левая часть является потоком, который присутствует в левой части фразы JOIN, а правая часть- потоком, который назван аргументом фразы JOIN. В операторе, содержащем множество соединений, понятия "левый" и "правый" относительны - правый поток одного предложения соединения может быть левым другого предложения. Такое бывает часто, когда спецификации соединения являются "сглаженной" иерархической структурой.
"Левый" и "правый" значимы в логике спецификаций внешнего соединения. Внешнее соединение может быть левым, правым и полным. Каждый тип внешнего соединения создает различный выходной набор данных из тех же входных потоков. Ключевые слова LEFT, RIGHT и FULL достаточны для установления факта, что соединение "внешнее"; ключевое слово OUTER является необязательной частью синтаксиса.
LEFT OUTER JOIN
Левое внешнее соединение (LEFT OUTER[78] JOIN) в запросе создает набор данных, состоящий из полностью заполненных столбцов, где найдены соответствующие строки (как и во внутреннем соединении), а также частично заполненных строк для каждого экземпляра, где соответствие правой стороны не найдено для ключа левой стороны. Несоответствующие столбцы будут "заполнены" значением NULL. Вот оператор, использующий те же входные потоки, что и наш пример INNER JOIN:
SELECT
Table1.PK,
Table1.COL1,
Table2.PKX,
Table2.COLX
FROM Table1 LEFT OUTER JOIN Table2
ON Table1.PK = Table2.FK
WHERE ... <условия-поиска>
На рис. 22.2 показано, как будут объединены потоки для левого соединения.
Рис. 22.2. Левое соединение
В этом случае, вместо того чтобы отбрасывать строки левого потока, для которых нет соответствия в правом потоке, запрос создает строку, содержащую данные из левого потока, и NULL для каждого указанного в правом потоке столбца.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Внешние ссылки
Внешние ссылки Внешними называют ссылки на объекты, расположенные вне текущей страницы. Это могут быть картинки, другие страницы сайта, мультимедийные приложения.Основой внешних ссылок является URL-адрес объекта, на который вы собираетесь сослаться.Для создания
Внешние факторы
Внешние факторы Внутренняя оптимизация сайта – вотчина его владельца или администратора. Неудивительно, что веб — мастера из числа – выразимся иносказательно – «моральных релятивистов» научились оперировать не совсем честными методами и выдавать порой
11.3. Внешние DNS-серверы
11.3. Внешние DNS-серверы Если в локальном файле /etc/hosts не найдено записи о нужном имени, то компьютер должен запросить эту информацию у DNS-сервера. Для этого нужно знать IP-адрес этого самого сервера. Как система его узнает? Из файла /etc/resolv.conf, который должен выглядеть примерно
Внешние ключи
Внешние ключи Следующим ограничением, которое часто используется в базах данных InterBase, является ограничение внешнего ключа. Это очень мощное средство для поддержания ссылочной целостности в базе данных, которое позволяет не только контролировать наличие правильных
Внешние тестировщики
Внешние тестировщики В Google работает много талантливых ребят, но мы отлично понимаем, что и наши возможности имеют пределы. Новые амбициозные проекты появляются без предупреждения, и им часто нужны узкоспециализированные профессионалы для тестирования. Мы не всегда
Внешние переменные
Внешние переменные Переменная, описанная вне функции, является внешней. Внешнюю переменную можно также описать в функции, которая использует ее, при помощи ключевого слова extern. Описания могут выглядеть примерно так:int errupt; /* Три переменные, описанные вне функции
Внешние документы
Внешние документы Для осуществления оперативных связей с организациями и гражданами в случае невозможности бездокументного обмена (личного или по телефону) составляются письма. При необходимости срочной передачи информации составляются телефонограммы или факсы, реже
Внешние устройства
Внешние устройства Акустические системы В главе, посвященной звуковым платам, мы уже говорили, что для хорошего звука самой дорогой и продвинутой «звуковушки» недостаточно! Львиная доля ответственности за качество звучания лежит именно на акустических системах (в
14.4 Внешние определения
14.4 Внешние определения программа: внешнее_определение внешнее_определение программавнешнее_определение: определение_функции описаниеопределение_функции: спецификаторы_описания opt описатель_функции инициализатор_базового opt тело_функцииописатель_функции: описатель (
Внешние устройства
Внешние устройства Уверен, всем читателям пригодятся утилиты, работающие с приводами оптических дисков, flash-накопителями, принтерами и другими периферийными устройствами. В данном разделе представлены небольшие, но очень полезные программы.Nero
Внешние повреждения
Внешние повреждения Внешние повреждения – то, на что необходимо обратить внимание еще до того, как вы заплатите деньги. В первую очередь осмотрите корпус ноутбука на наличие трещин. По большому счету о подобных дефектах вам должны будут сказать сразу. Кроме того, если они
Внешние программы
Внешние программы ОО-системы состоят из классов, образованных компонентами (features), в частности, подпрограммами, содержащими инструкции. Что же является правильным уровнем модульности (granularity) для интегрирования внешнего программного продукта?Конструкция должна быть
У13.1 Внешние классы
У13.1 Внешние классы При обсуждении интеграции внешнего не объектного ПО с объектной системой отмечалось, что компоненты являются тем уровнем, на котором нужно осуществлять интеграцию. Когда же речь идет об интеграции с ПО, созданным на другом объектном языке, уровнем