Имя: Пароль:
1C
1С v8
Несколько соединений в одном запросе
0 Diesellogin
 
13.10.12
16:44
Есть шаблон запроса:
ВЫБРАТЬ              //0
.......
ИЗ
.......
ВНУТРЕННЕ СОЕДИНЕНИЕ //1
........
ПО
........
ЛЕВОЕ СОЕДИНЕНИЕ     //2
........
ПО
........

Подскажите, в каком порядке осуществляется соединение:
0 с 1, затем результат от 0+1 с 2
или
1 с 2, а затем 0 с результат от 1+2
?
Спасибо.
1 Diesellogin
 
13.10.12
16:50
Или все зависит от полей указываемых в ПО?
2 rs_trade
 
13.10.12
17:12
соединяет слева на право в указанном порядке. каждое следующее соединение работает с результатом предыдущего.
3 rs_trade
 
13.10.12
17:14
а выбрать отрабатывает вообще самым последним
4 rs_trade
 
13.10.12
17:17
(3) точнее, ВЫБРАТЬ предпоследним отрабатывает. последним отрабатывает УПОРЯДОЧИТЬ
5 Diesellogin
 
13.10.12
17:23
(2) Судя по такому порядку, ВЫБРАТЬ работает наоборот с первым соединением, то есть первым, а не предпоследним. Правильно?
6 Diesellogin
 
13.10.12
17:25
Плюс все-таки, если в "ПО" второго соединения указано поле из первого соединения, а не из ВЫБРАТЬ, то сначала по идее должны отработать соединения (первое и второе), а потом уже ВЫБРАТЬ + результат соединения. Или я заблуждаюсь?
7 rs_trade
 
13.10.12
17:30
(6) Заблуждаешься. ВЫБРАТЬ это фактически вывод результата запроса. Эта часть запроса логически отрабатывается  почти самая последняя. После всех соединений, наложения условий, группировок и прочего.
8 rs_trade
 
13.10.12
17:32
Про ВЫБРАТЬ вообще пока можно забыть. Еще раз. Соединения отрабатываются слева на право. По указанным для них условиям. На вход следующего соединения подается результат предыдущего.
9 Diesellogin
 
13.10.12
17:32
Ясно. Т.е. на примере четырех соединений последовательность такая:
ВЫБРАТЬ ИЗ истоник1 соединение  с (((С1+С2)+С3)+С4),
затем УПОРЯДОЧИТЬ, затем ИТОГИ
Так?
10 rs_trade
 
13.10.12
17:38
(9) логически запрос отрабатывается в таком порядке

1. FROM
2. WHERE
3. GROUP BY
4. HAVING
5. SELECT
6. ORDER BY

ИТОГИ  это вообще не SQL конструкция, а 1С-ная. Она да, уже с результатом запроса работает.
11 Diesellogin
 
13.10.12
17:43
Ок, понятно. Спасибо!
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс