|
Запрос. Соединение 4-х таблиц. | ☑ | ||
---|---|---|---|---|
0
abda123
01.02.16
✎
13:18
|
В запросе есть 4 таблицы, всех таблицах по 2 поля:
1. Номенклатура 2. Значение ресурса из регистра накопления. Для каждой таблицы свой регистр. Как в запросе соединить 4 таблицы так чтобы в результат попали записи из всех таблиц. Что то я туплю, обычно соединял 2 таблицы полным соединением и для нулл полей использовал функцию естьнулл. А как это сделать для 4-х сразу не могу понять. |
|||
1
Рэйв
01.02.16
✎
13:20
|
точно также
Таб1 Полное соединение Таб2 По Таб1.Номенклатура=Таб2.Номенклатура Полное соединение Таб3 По Таб1.Номенклатура=Таб3.Номенклатура Полное соединение Таб4 По Таб1.Номенклатура=Таб4.Номенклатура |
|||
2
Encode
01.02.16
✎
13:21
|
(0) Объединением например
|
|||
3
abda123
01.02.16
✎
13:23
|
(1) Да, действительно. Точно также полным соединением таб1 со остальными по полю номенклатура. Просто ЕстьНулл будет проверять значение из всех 4-х таблиц для поля номенклатуры. Вопрос закрыт. Не сочтите за флуд)
|
|||
4
rs_trade
01.02.16
✎
13:31
|
(3) каждое следующее соединение работает с результатом предыдущего.
|
|||
5
abda123
01.02.16
✎
13:40
|
(4) В смысле, в соединении же указывается 2 таблицы, как оно берет предыдущий результат? Логичней по моему, что оно соединяет 2 таблицы указанные в соединении, а потом берет результаты всех 3-х соединений и объединяет, или если не так то можно поподробней плиз.
|
|||
6
Мимохожий Однако
01.02.16
✎
13:44
|
Добавь левой таблицей Номенклатуру, а остальные справа.
|
|||
7
Мимохожий Однако
01.02.16
✎
13:45
|
Как вариант сформировать 4 временные таблицы, потом их объединить с разными колонками и сгруппировать
|
|||
8
abda123
01.02.16
✎
13:47
|
(7) У меня и есть 4 временные таблицы. Т.е. объединение предпочтительней соединения, интересно мне)
|
|||
9
abda123
01.02.16
✎
13:55
|
(3) каждое следующее соединение работает с результатом предыдущего. Пояснение в студию! И что предпочтительней для 4-х таблиц, объединение или соединение?
|
|||
10
hhhh
01.02.16
✎
14:01
|
(9) ну допустим у вас в каждой таблице по 1000 строк. Тогда при соединении у вас будет 1000*1000*1000 = миллиард сравнений.
При соединении всё-таки сравнений меньше. Особенно если проиндексируете таблицы по номенклатуре. |
|||
11
hhhh
01.02.16
✎
14:02
|
(10)+ при объединении меньше
|
|||
12
Мимохожий Однако
01.02.16
✎
14:05
|
Сделай замеры и определишься какой запрос лучше
|
|||
13
abda123
01.02.16
✎
15:34
|
(12) Сделал замеры, запрос выполняется быстрее через объединение. Сделал несколько замеров, в среднем в полтора раза быстрее.
|
|||
14
СвинТуз
01.02.16
✎
15:53
|
union all
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |