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