![]() |
![]() |
![]() |
|
Как перемножается таблицы в cross join | ☑ | ||
---|---|---|---|---|
0
el-gamberro
24.06.11
✎
15:24
|
Вопрос чисто теоретический
Имеем: ВЫБРАТЬ ... ИЗ Таблица1 ЛЕВОЕ СОЕДИНЕНИЕ Таблица2 ПО ... , (CROSS JOIN) Таблица3 Вопрос CROSS JOIN будет с произведением таблиц 1 и 2 или будет произведение таблицы 3 с каждой таблицей по отдельности? |
|||
1
el-gamberro
24.06.11
✎
15:25
|
Практическая задача мне к произведению таблиц необходимо присобачить конкретное значение. Решил вывернутся через кросс джоин
|
|||
2
rs_trade
24.06.11
✎
15:27
|
(1) с результатом левого должно быть
|
|||
3
Ёпрст
гуру
24.06.11
✎
15:29
|
(0) а в снеговике кросс джоин вообще есть ?
.. |
|||
4
el-gamberro
24.06.11
✎
15:30
|
(3) Да, просто таблицы через запятую.
|
|||
5
MRAK
24.06.11
✎
15:32
|
(4) это как?
|
|||
6
Ёпрст
гуру
24.06.11
✎
15:33
|
(4) аа..
ну, логически они должны обрабатываться слева на право, т.е первая тобличная операция соединения будет левой таблицей для второй, потом результат левой для третьей и т.д. Но на практике, скуль для оптимизации часто делает не так - может сам поменять местами порядок для ускорения.. |
|||
7
rs_trade
24.06.11
✎
15:33
|
(5) для тебя это новость? просто в конструкторе добавь две таблицы. без связей
|
|||
8
el-gamberro
24.06.11
✎
15:34
|
(5) Выбрать * ИЗ Таблица1, Таблица2
|
|||
9
Ёпрст
гуру
24.06.11
✎
15:34
|
+6 результат от этого не поменяется.
|
|||
10
el-gamberro
24.06.11
✎
15:36
|
Конкретизирую задачу. Есть колонка ресурса Расход. Мне необходимо рассчитать долю расхода для каждой строки, причем сделать это в запросе.
|
|||
11
fisher
24.06.11
✎
15:36
|
(0) Как это, по отдельности? Тут пофиг, это ж сомножители по сути.
(5) Так же, как и в Transact-SQL Писатели типовых, судя по-всему, тоже не догадываются о записи таблиц через запятую. Вместо этого встречал СОЕДИНЕНИЕ ПО ИСТИНА. |
|||
12
Fragster
гуру
24.06.11
✎
15:37
|
от перемены мест слагаемых сумма не поменяется.
|
|||
13
Fragster
гуру
24.06.11
✎
15:38
|
(11) кросс джоин с пустой таблицей выдаст пустую талицу, а левое по Истина - вполне себе не пустую
|
|||
14
el-gamberro
24.06.11
✎
15:39
|
(11,12) Согласен. Заморочился уже под конец недели с этими перемножениями :))
|
|||
15
Ёпрст
гуру
24.06.11
✎
15:39
|
(10) в скуле - как 2 пальца, через over как в снеговике, нужно подумать :)
|
|||
16
el-gamberro
24.06.11
✎
15:41
|
(15) А как насчет нарастающего итога в снеговике в запросе?:)
|
|||
17
el-gamberro
24.06.11
✎
15:42
|
Что за over в скуле?
|
|||
18
rs_trade
24.06.11
✎
15:42
|
(17) в BOL посмотри
|
|||
19
Ёпрст
гуру
24.06.11
✎
15:44
|
(16)можно, но те решения что видел на снеговике - изврат, за неимением нормальной поддержки языка t-sql..Почему они его не реализовали, как в 1срр, к примеру - не ясно..
Вот и мучайся с соединениями и "максимумами".. |
|||
20
Jstunner
24.06.11
✎
15:44
|
(10) доли высчитывать лучше вне запроса. В запросах очень криво считает:
ВЫБРАТЬ Т.Р, Т.А / Т.Б КАК П ИЗ (ВЫБРАТЬ 1 КАК А, 3 КАК Б, 1 / 3 КАК Р) КАК Т |
|||
21
Ёпрст
гуру
24.06.11
✎
15:46
|
Вообще, кто бы написал нормальный метапарсер для снеговика и типизацию - было бы супер..
Твори сам, что хочешь, используя весь струмент скуля. А на выходе, скд всё скушает. |
|||
22
el-gamberro
24.06.11
✎
15:47
|
(21) Уже есть интерпрайз интегратор
|
|||
23
rs_trade
24.06.11
✎
15:49
|
(22) он же только парсит недозапросы в t-sql. как он связан с использованием конструкций t-sql?
|
|||
24
Jstunner
24.06.11
✎
15:50
|
(19) платформа, обычно, работает без сервера баз данных
|
|||
25
el-gamberro
24.06.11
✎
15:53
|
(23) Как говорится и на том спасибо :)
|
|||
26
rs_trade
24.06.11
✎
16:01
|
(25) профайлером не сложно посмотреть. в EI бесит долгая обработка запроса, через журнал. да еще и платным сделали.
|
|||
27
fisher
24.06.11
✎
18:17
|
(13) Таки да... Левое было...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |