Имя: Пароль:
1C
1С v8
Вопрос про запрос
,
0 Invis91
 
13.01.13
17:59
Здравствуйте. При соединение двух таблиц в запросе с указанием оператора  "где", как происходит выполнение:
1)соединение, а потом уже по условиям после оператора "где" идет отбор общей соединенной таблицы
2)берем первую таблицу - отбираем ее по условиям после оператора "где"
берем вторую таблицу - отбираем по условиям после оператора "где"
соединяем
1 hhhh
 
13.01.13
18:14
это зависит, как SQL соптимизирует этот запрос.
2 Invis91
 
13.01.13
20:22
а если база файловая?
3 ДенисЧ
 
13.01.13
20:24
(2) А тут уж как БН на душу положит. Не знаю, сможет ли техножурнал это показать, но попробовать стоит.
4 Alexman13
 
13.01.13
20:40
(0) Я думаю однозначно 1 вариант: сначала соединит, потом наложит отбор.
5 Invis91
 
13.01.13
21:25
(4) по-видимому так и есть.
А я почему то думал, что используется 2ой вариант, так как,как мне кажется, он более оптимален и был в небольшом замешательстве, когда оказалось все наоборот.
6 hhhh
 
13.01.13
21:32
(5) как-то странно вы думали. Например, такое условие

ГДЕ
   Таблица1.Номенклатура = Таблица2.Номенклатура

Как вы сюда присобачите ваш 2-й вариант? Он вообще невозможен.
7 PR
 
13.01.13
21:32
(5) В ГДЕ можно наложить условия на обе таблицу, в том числе на произвольную комбинацию полей из обеих таблиц. Что тут удивительного?
Хочешь сделать отбор сразу, продублируй ГДЕ в условии соединения в ПО.
8 acsent
 
13.01.13
21:33
если внутреннее соединение, то может быть по разному
9 КонецЦикла
 
13.01.13
21:35
(7) Мне кажется разницы не будет между где в условии и где в соединении по скорости
10 PR
 
13.01.13
21:37
(9) С чего бы это вдруг?
Так, например, при левом соединении прицепится стомилльенов записей, а так две. Разница есть?
11 FIXXXL
 
14.01.13
03:35
сначала условия, потом соединения
12 Invis91
 
14.01.13
22:30
(7) Блин, точно. Дикий тупняк конечно. Спасибо.