Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
LEFT OUTER JOIN
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 для каждого указанного в правом потоке столбца.