Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Порядок выполнения нескольких условии при соединении таблиц в запросе

Порядок выполнения нескольких условии при соединении таблиц в запросе
Я
   lirt82
 
24.06.20 - 06:03
Коллеги, правильно ли я понимаю что если используется более одного соединения таблиц в запросе то второе соединение берет результат первого?
пример
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Обороты(&НачПериода, &КонПериода, Регистратор, ) КАК ТоварыНаСкладахОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары (в результате этого соединения получаем таблицу с 10-ю записями)

            ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураПолученный.ДокументыОснования КАК СчетФактураПолученныйДокументыОснования (и теперь во втором соединении 10 записей полученных в результате первого соединения связываем с таблицей СчетФактураПолученныйДокументыОснования)
            ПО ПоступлениеТоваровУслугТовары.Ссылка = СчетФактураПолученныйДокументыОснования.ДокументОснование
        ПО ТоварыНаСкладахОбороты.Регистратор = ПоступлениеТоваровУслугТовары.ПриходныйОрдер
   lirt82
 
1 - 24.06.20 - 06:16
(0)  поправка при условии что во втором соединении берется результат первого соединения если таблица одинаковая, в примере это таблица Документ.ПоступлениеТоваровУслуг.Товары
   Конструктор1С
 
2 - 24.06.20 - 07:12
(0) не пиши такие запросы
"правильно ли я понимаю что если используется более одного соединения таблиц в запросе то второе соединение берет результат первого?"

Для разных типов соединений работает по-разному
   dmpl
 
3 - 24.06.20 - 07:12
(0) Решает оптимизатор SQL. Иногда вложенный запрос с отбором по условию из первой таблицы дает ускорение, иногда нет.
   Вафель
 
4 - 24.06.20 - 07:26
нужно понимать что на физ уровне соединения бываю 3х видов
лукапс хэш мердж
последний самый эффективный но требует индекса
   bolder
 
5 - 24.06.20 - 07:34
(0) Так как второе соединение имеет связь только с результатами первого - то очевидно будет такой результат.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.