|
|
Несколько соединений в одном запросе |
☑ |
|
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
|
Ок, понятно. Спасибо!
|
|