Что первично? Условие ГДЕ или Соединение #499692


#0 by alexkv_m
Запрос: ВЫБРАТЬ |    ВнутреннийЗаказТовары.Номенклатура вначале выполнится условие или соединение? т.е. есть ли смысл делать подзапрос с условием
#1 by John83
сначала СОЕДИНЕНИЕ, потом ГДЕ вроде так
#2 by John83
можно сделать условие в самом соединении
#3 by SnarkHunter
Что первично - изучение языка запросов или его использование?
#4 by hhhh
вроде параллельно должно происходить. Ни разу еще не видел такого уникума, который сначала всё изучил, а потом вдруг принялся использовать.
#5 by МЮЛЛЕР
Яйца первичны, яйцы...
#6 by Нуф-Нуф
где - накладывается уже на итоговую таблицу. если неощибаюсь
#7 by Нуф-Нуф
кстати никто не задумался что за бред в сабжевом запросе?
#8 by hhhh
в файловом варианте подзапрос по-любому быстрее.
#9 by Нуф-Нуф
ВЫБРАТЬ    ВнутреннийЗаказТовары.Номенклатура ИЗ    Документ.ВнутреннийЗаказ.Товары КАК ВнутреннийЗаказТовары
#10 by Нуф-Нуф
и не надо лохматить бабушку
#11 by Расколбас
Ну может это просто пример для демонстрации к вопросу, а не живой код.
#12 by Нуф-Нуф
да при любом раскладе код фантастический
#13 by sda553
Движок СУБД сам выбирает оптимальный алгоритм для осуществления выборки и соответственно на его совести, применить фильтр до или после соединения.
#14 by Расколбас
Гы :-) Тогда лучше на 1С не надеется, сильные сомнения у меня, что он выберет оптимальный.
#15 by hhhh
но в реальности там две таблицы и 1С-ка всё равно по умолчанию там вставляет неявное соединение. Как в .
#16 by Нуф-Нуф
с чего бы это? имхо в чисто запрос к таблице ТабЧастей с фильтром по ссылке
#17 by rinatru
а зачем соединение? не понимаю.. ты уже определил состав ТЧ конкретного документа через ГДЕ
#18 by hhhh
в этом случае, да. Но обычно там еще поля подтягиваются типа Ссылка.Дата, Ссылка.Контрагент.
#19 by rinatru
ну так получай эти параметры через ВнутреннийЗаказТовары.Ссылка.Дата ВнутреннийЗаказТовары.Ссылка.Контрагент зачем огород городить? или конкурс как Sql загрузить, чтобы жизнь малиной не казалась?
#20 by Нуф-Нуф
ну тогда да. так вот в это запросе уже и пойдет еще одно скрытое соединение
#21 by rinatru
согласен с вами полностью. не зря 1С-цы по шапке и по табличным частям делают отдельно запросы
#22 by 0xFFFFFF
Это да. Но если нужно наложить условие на ВнутреннийЗаказТовары.Ссылка.Контрагент например, то делаю сначала сами ссылки во временную таблицу, а потом уже ГДЕ ВнутреннийЗаказТовары.Ссылка В (ВЫБРАТЬ врЗаказыПоКонтрагенту.Ссылка из врЗаказыПоКонтрагенту) Запрос так гораааздо быстрее отрабатывает.
#23 by rinatru
а давайте вернемся к началу. Наш вопрошающий случаем отчет не по документам формирует? вопрос к - где ты этот запрос применяешь?
#24 by SnarkHunter
Зато, судя по вопросам на форуме полно уникумов, которые, ничего не изучив, принимаются использовать...
#25 by alexkv_m
в сабжевом запросе - это для наглядности.. просто пример +1 всегда так думал..  просто интересно всегда ли выбирается оптимальный вариант и от чего это зависит Сделал замер производительности на таком простом примере ГДЕ отрабатывается раньше, судя по скорости. это тестовый запрос. просто периодически сталкиваюсь с такой дилемой. в данном случае реальный запрос немного посложнее будет
#26 by alexkv_m
к сведению..  сам веду курсы по программированию и лекции в универе а судя по Вашим ответам, Вы не можете однозначно ответить на такой "тривиальный" вопрос.
#27 by SnarkHunter
Жаль мне слушателей этих курсов...
#28 by alexkv_m
себя пожалей...
#29 by 0xFFFFFF
Ужасть. Тебе еще в ответили.
#30 by Расколбас
шопорукие проги, которые платформу одинэсовскую писали, сами этого не знают походу. Нигде в мануалах это не описано. Так, что вопрос вовсе не тривиальный.
#31 by alexkv_m
смотри SQL точно сам выбирает..
#32 by НП
По-моему, здесь вообще нужно ПРАВОЕ соединение делать.
#33 by alexkv_m
этот запрос нереальный..  просто для примера
#34 by rinatru
где ты в табличной части найдешь строку, которая не будет принадлежать Ссылке?
#35 by Расколбас
А при чем тут скуль? Со скулем всё ясно, речь о работе платформы и о недостаточном описании таких вещей. В 1С вообще нет правых соединений. Попробуй мастером правое соединение сделать, он перевернет таблицы и сделает левое.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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