Имя: Пароль:
1C
 
"Левое" Левое соединение в запросе
0 Ц_У
 
20.10.08
12:04
"ВЫБРАТЬ
   |    РеализацияТоваровУслуг.Дата,
   |    РеализацияТоваровУслуг.Ссылка,
   |    РеализацияТоваровУслуг.Представление,
   |    РеализацияТоваровУслуг.Контрагент КАК Контрагент,
   |    РеализацияТоваровУслуг.Контрагент.родитель КАК родитель,
   |    РеализацияТоваровУслугТовары.Номенклатура,
   |    РеализацияТоваровУслугТовары.Номенклатура.родитель КАК родительНОМ,
   |    РеализацияТоваровУслугТовары.Цена КАК Цена,
   |    РеализацияТоваровУслугТовары.Сумма КАК Сумма,
   |    РеализацияТоваровУслугТовары.Количество КАК Количество,
   |    РеализацияТоваровУслуг.КурсВзаиморасчетов
   |ИЗ
   |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
   |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
   |        ПО РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслуг.Ссылка
   |ГДЕ
   |     РеализацияТоваровУслуг.Дата МЕЖДУ &дата1 И &дата2" ;
Левое соединение тут вообще зачем-то нужно или нет, просто писал спец высокого уровня, а меня сомнения замучали - себе доверять перестал =))
1 Cheater
 
20.10.08
12:07
(0) а что тебя не устраивает?
2 Immortal
 
20.10.08
12:07
неа
ошибка здесь.
зачем левый джойн если он превращается в полный условием в ГДЕ?
3 Cheater
 
20.10.08
12:11
хочешь на правое поменять и сомнения гложат?
4 Said_We
 
20.10.08
12:11
(0) Зачем прицеплять левым к запросу по табличной части, запрос по самому объекту?
Тут вообще левое соединение не нужно.

ВЫБРАТЬ
   |    РеализацияТоваровУслугТовары.Ссылка.Дата,
   |    РеализацияТоваровУслугТовары.Ссылка,
   |    РеализацияТоваровУслугТовары.Ссылка.Представление,
   |    РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
   |    РеализацияТоваровУслугТовары.Ссылка.Контрагент.родитель КАК родитель,
   |    РеализацияТоваровУслугТовары.Номенклатура,
   |    РеализацияТоваровУслугТовары.Номенклатура.родитель КАК родительНОМ,
   |    РеализацияТоваровУслугТовары.Цена КАК Цена,
   |    РеализацияТоваровУслугТовары.Сумма КАК Сумма,
   |    РеализацияТоваровУслугТовары.Количество КАК Количество,
   |    РеализацияТоваровУслугТовары.Ссылка.КурсВзаиморасчетов
   |ИЗ
   |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
   |ГДЕ
   |     РеализацияТоваровУслуг.Ссылка.Дата МЕЖДУ &дата1 И &дата2"
5 Ц_У
 
20.10.08
12:20
это код от "Рарус"а =)
(4) я так же делаю всегда :)
6 Валерыч
 
20.10.08
12:25
Проверено, работет быстрее нежели (4). Замерял производительность данных запросов в цикле.
7 Ц_У
 
20.10.08
12:30
(6) Сомнительный прирост производительности, в лучшем случае будет одинаково, да и в худшем тож самое =)
разницы то никакой
8 ks_83
 
20.10.08
12:46
(6) Почему оно должно быстрее работать? Есть какое-то обоснование, кроме замера? ИМХО (0) это масло масленое.
9 Пуд
 
20.10.08
12:47
(0) И зачем левое соединение?Внутреннее не устроило что ли...
10 Широкий
 
20.10.08
13:01
(6) Да лано.. лишнее левой соединение и вдруг стало работать быстрее?
11 Широкий
 
20.10.08
13:04
(0) Возвможно прог ошибся и нужно было сделать правое соединение.. Смысл - получить шапку и табличную часть (если она существует)
12 YauheniL
 
20.10.08
13:15
(8) Потому что, там дополнительно отбор по ссылке. ИМХО, секция где бесполезна. Т.к. соединение по ссылке сужает область поиска до одного документа
13 Cheater
 
20.10.08
13:23
(12) да ну? :)
14 YauheniL
 
20.10.08
13:28
(13) Виноват, ошибся. Видно, пора на обед идти
15 Said_We
 
20.10.08
14:03
(5) Ну тогда как то так что ли:

ВЫБРАТЬ
   |    РеализацияТоваровУслуг.Дата,
   |    РеализацияТоваровУслуг.Ссылка,
   |    РеализацияТоваровУслуг.Представление,
   |    РеализацияТоваровУслуг.Контрагент КАК Контрагент,
   |    РеализацияТоваровУслуг.Контрагент.родитель КАК родитель,
   |    РеализацияТоваровУслугТовары.Номенклатура,
   |    РеализацияТоваровУслугТовары.Номенклатура.родитель КАК родительНОМ,
   |    РеализацияТоваровУслугТовары.Цена КАК Цена,
   |    РеализацияТоваровУслугТовары.Сумма КАК Сумма,
   |    РеализацияТоваровУслугТовары.Количество КАК Количество,
   |    РеализацияТоваровУслуг.КурсВзаиморасчетов
   |ИЗ
   |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
   |        ЛЕВОЕ СОЕДИНЕНИЕ
   |        (ВЫБРАТЬ
   |            Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
   |         ГДЕ
   |     РеализацияТоваровУслуг.Дата МЕЖДУ &дата1 И &дата2) КАК РеализацияТоваровУслуг
   |        ПО РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслуг.Ссылка

А левое правое или еще какое без разницы в данном случае. Результат будет один и тот же и скорость выполнения тоже.
16 rasswet
 
20.10.08
14:54
а чем (4) плохо? много короче))
17 Ц_У
 
20.10.08
14:59
(16)в том то и дело что по барабану.
18 Said_We
 
20.10.08
15:40
(17) Теоретически в (15) должЁн работать быстрее чем в (0). Декартово перемножается (JOIN) две таблице и одна из них за счет условия получается меньшей или равной.
AdBlock убивает бесплатный контент. 1Сергей