Левое соединение с условием #709560


#0 by PiotrLoginov
Здравствуйте всем. Может туплю под конец понедельника... открыл чужую обработку. Читаю запрос: ВидКонтактнойИнформации - это Справочники.ВидыКонтактнойИнформации.АдресДоставкиКонтрагента Начало и Конец, понятно, дата начала периода, за который отбираем РТиУ и его конца Так вот, документы, для контрагентов которых в РС "КонтактнаяИнформация" данных нету, в результат запроса не попадут. Вообще, когда мы выбираем ВСЕ данные Икс из справочника1, а также левым соединением согласно связи Зэт - данные Игрек из справочника2 (но не все, а только соответствующие определенному условию), то вполне возможно, если для очередного Икс нет подходящих строк в справочнике2 (соответствующих связи Зэт и определенному нами условию), Икс будет отсеян и не попадет в результат запроса. Несмотря на то, что соединение ЛЕВОЕ, т.е. по идее мы должны получить ВСЕ Икс из справочника1. Такое впечатление, да так оно вроде бы и есть, что сначала формируется таблица выборки из обеих таблиц, а затем уже к ней начинают применяться условия, определенные после слова ГДЕ. Так что, как писал уважаемый форумчанин здесь: , "ЛЕВОЕ с правильным отбором даст результат аналогичный ВНУТРЕННЕМУ". Позвольте спросить: как правильно написать приведенный выше запрос, чтобы быть уверенным, что ни одно РТиУ не будет пропущено, даже если его контрагент не имеет в контактных данных никаких записей. Просто я могу подправить этот запрос самыми разными способами. Интересует оптимальный.
#1 by shuhard
в 100500 раз - подзапрос - ВТ - условие в ПО
#2 by PiotrLoginov
ага. все-таки приоритет скорости у временных таблиц.  понял, спасибо
#3 by NcSteel
ВТ тут никчему. Просто перенести условие из ГДЕ в условие соединений.
#4 by shuhard
заметь, я тут не при чем =)
#5 by PiotrLoginov
Так: ?   так работает.  И это оптимальнейший путь ?  ну вот.  побоку условия, даешь теперь их перенос в связи
#6 by PiotrLoginov
запятую только после "Адрес" убрать
#7 by PiotrLoginov
теперь понял, что означало "условие в ПО"
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С