Имя: Пароль:
1C
1С v8
Сначала соединение потом отбор (ГДЕ)?
,
0 DirecTwiX
 
13.09.13
23:13
Напомните пожалуйста. Я ведь прав?
1 exwill
 
13.09.13
23:15
(0) Как СУБД решит.
2 МихаилМ
 
13.09.13
23:15
в общем случае  sql декларативный язык.
3 exwill
 
13.09.13
23:15
(0)  или ты о синтаксисе?
4 ДемонМаксвелла
 
13.09.13
23:16
(0) в каком контексте?

если условие наложишь при левом соединении на таблицу, которая справа, то соединение станет внутренним
5 France
 
14.09.13
00:18
(4) а если проверить?
6 DirecTwiX
 
14.09.13
00:38
Вопрос про любое соединение и про поле, по которому не происходит соединение. Просто до соединения условие вроде как эффективнее накладывать - отсюда и вопрос.
7 ДемонМаксвелла
 
14.09.13
01:44
(5) проиллюстрирую, что имел в виду на запросе:

ВЫБРАТЬ
    Ном.Ссылка КАК Ном,
    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
ИЗ
    Справочник.Номенклатура КАК Ном
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
        ПО Ном.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
ГДЕ
    ЦеныНоменклатурыСрезПоследних.Цена >= 0

вот такой запрос покажет только ту номенклатуру, по которой есть цены больше нуля. Если здесь левое соединение заменить на внутреннее, ничего не изменится. Разумеется, если в условии использовать естьnull, то покажет всю номенклатуру
8 йети
 
14.09.13
01:48
(0) не терзайся - просто помоги оптимизатору sql, используй ВТ для ГДЕ
9 lapinio
 
14.09.13
02:52
Зачем условие где. Если соединение по регистру.
10 lapinio
 
14.09.13
02:53
Попадут те записи из номенклатуры где есть запись в регистре
11 fyn
 
14.09.13
10:02
(11) номенклатуру из регистра нужно взять и тогда никакие соединения будут не нужны
12 France
 
14.09.13
10:26
(11) а если в регистре не всей номенклатуры?