Что такое ПОЛНОЕ СОЕДИНЕНИЕ в запросе 1C, как оно работает? (1C: 8.1: Программисту: Язык программирования: Язык запросов) — 1c-h
 

Что такое ПОЛНОЕ СОЕДИНЕНИЕ в запросе 1C, как оно работает? (1C: 8.1: Программисту: Язык программирования: Язык запросов)

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Вопрос Что такое ПОЛНОЕ СОЕДИНЕНИЕ в запросе 1C, как оно работает?
Ответ Любое «СОЕДИНЕНИЕ» наборов данных, в том числе и «ПОЛНОЕ», дает команду объединить определенным образом два набора данных между собой по некоторому условию (обычно это условие равенства каких-то ресурсов в этих наборах). В случае полного соединения в результирующем наборе будут не только строки, по которым условие выполнено, но и строки, по которым оно не выполнено. При этом строки, по которым условие не выполнено, присоединившись, будут содержать NULL «чужого набора», а строки, по которым условие выполнено, объединят свои ресурсы, размножаясь по принципу «каждый к каждому». Звучит не очень понятно, но на примере будет видно лучше.

К примеру, у нас есть 2 таблицы: «Т.1» и «Т.2» и мы хотим выполнить полное соединение этих таблиц по условию, что ресурс 2 таблицы 1 равен ресурсу 4 таблицы 2.

Как видно из рисунка, ресурс 2 равен ресурсу 4 в обведенных красным цветом строках.

В результате выполнения полного соединения, видим размножение строк: все строки таблицы 1 соединились с каждой из строк таблицы 2 (размножились), в которых условие выполнилось (строки обведены красным цветом). Плюс добавились все строки из обеих таблиц, по которым условие не выполнилось – по ним поля второй таблицы остаются, соответственно, не заполненными.
Посмотрите на исходные таблицы: строки «2 — b» и «3 — c» таблицы «Т.1» есть в результате запроса (у этих строк не заполнены поля, принадлежащие данным второй таблицы), и строка «второй — 22» таблицы «Т.2» тоже есть в результате запроса (у нее не заполнены поля, принадлежащие данным первой таблицы)

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Автор 1С

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Next Post

Как в 1С v8 изменить запись регистра сведений с помощью метода СоздатьМенеджерЗаписи (1С: v8: Программисту: Язык программирования: Регистр сведений)

Чт Май 27 , 2010
Как в 1С v8 спозиционироваться на конкретной записи регистра сведений и изменить ее Метод можно использовать только для регистров, у которых Режим записи установлен Независимый. Вообще, строго говоря, метод СоздатьМенеджерЗаписи() обычно используется для записи новой строки в регистр или для удаления существующей строки. Для редактирования регистра лучше использовать метод СоздатьНаборЗаписи(). […]