Полное соединение. Соответствует ключевому словую ПОЛНОЕ в выражении ИЗ языка запросов.
Полное описание, параметры и ограничения
ТипСоединенияСхемыЗапроса.ПолноеВнешнее (QuerySchemaJoinType.FullOuter)
ТипСоединенияСхемыЗапроса (QuerySchemaJoinType)
ПолноеВнешнее (FullOuter)
Доступен, начиная с версии 8.3.5.
Описание:
Полное соединение.
Соответствует ключевому словую ПОЛНОЕ в выражении ИЗ языка запросов.
Использование в версии:
Доступен, начиная с версии 8.3.5.
Методическая информация
Практические примеры
Изменить собственную схему запроса: ТипСоединенияСхемыЗапроса.ПолноеВнешнее
Соединение получено непосредственно методом Добавить у настоящего собственного источника. Тип ПолноеВнешнее назначается конкретной связи по равенству наименований.
Где и как запускать
Тело серверной процедуры собственной учебной обработки. Схема редактируется в памяти, текст запроса выводится без исполнения.
Подготовка
Тело серверной процедуры своей учебной обработки. Вложенные источники содержат только собственные константы: товары Книга / Ручка и цены Книга / Альбом.
В конфигурации не нужны справочники, регистры или внешний SQL-сервер. Схема и оба вложенных запроса существуют в памяти.
Не вставляйте сюда рабочие таблицы вместо вложенных констант. Основной код показывает генерацию SQL; вызова Запрос.Выполнить в нём нет.
Схема = Новый СхемаЗапроса;
Схема.УстановитьТекстЗапроса("ВЫБРАТЬ 1 КАК Подготовка");
Выбор = Схема.ПакетЗапросов.Получить(0);
Оператор = Выбор.Операторы.Получить(0);
Товары = Оператор.Источники.Добавить(Тип("ВложенныйЗапросСхемыЗапроса"), "Товары");
Цены = Оператор.Источники.Добавить(Тип("ВложенныйЗапросСхемыЗапроса"), "Цены");
Товары.Источник.Запрос.УстановитьТекстЗапроса("ВЫБРАТЬ ""Книга"" КАК Наименование
|ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ""Ручка""");
Цены.Источник.Запрос.УстановитьТекстЗапроса("ВЫБРАТЬ ""Книга"" КАК Наименование, 250 КАК Цена
|ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ""Альбом"", 400");
Оператор.ВыбираемыеПоля.Очистить();
Оператор.ВыбираемыеПоля.Добавить("Товары.Наименование");
Оператор.ВыбираемыеПоля.Добавить("Цены.Цена");
Связь = Товары.Соединения.Добавить(Цены, "Товары.Наименование = Цены.Наименование");
Связь.ТипСоединения = ТипСоединенияСхемыЗапроса.ПолноеВнешнее;
Сообщить(Схема.ПолучитьТекстЗапроса());
Сообщить("Соединение собственных констант подготовлено; запрос не выполнялся");Разбор по шагам
Создаём одну собственную схему и сохраняем её в переменной на всё время обращения к дочерним объектам.
Получаем настоящее выражение порядка / соединение из этой схемы, а не неизвестный входной объект.
Назначаем типизированную константу и выводим получившийся текст без выполнения запроса.
Как проверить результат
В сформированном SQL показано соединение ПолноеВнешнее по Товары.Наименование = Цены.Наименование.
Для этих собственных исходных строк ожидается 3 строк при отдельном выполнении сгенерированного запроса. Здесь выполнение не производилось.
При внешнем соединении отсутствующая часть строки имеет NULL. Это не доказательство нулевой цены неизвестного товара.
Ожидаемый результат
Типизированный вариант применён к настоящему объекту собственной схемы запроса.
На что обратить внимание
Не переносите дочерние объекты между разными схемами.
Направление иерархии требует подходящего ссылочного поля, а не сортировки произвольного числа.
Генерация текста и выполнение SQL — разные действия; пример не выдаёт генерацию за runtime-проверку результата.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.