Имя: Пароль:
1C
 
v8: чем отличается ОБЪЕДИНИТЬ от СОЕДИНЕНИЕ
0 Ctvty
 
08.10.09
16:12
в запросе чем отличается ОБЪЕДИНИТЬ от СОЕДИНЕНИЕ
1 Aloex
 
08.10.09
16:14
Как минимум ОБЪЕДИНИТЬ <> СОЕДИНЕНИЕ.
2 Mitriy
 
08.10.09
16:15
а ты можешь объяснить, чем отличается ВЫБРАТЬ от ИТОГИ?
3 mikecool
 
08.10.09
16:15
(1) +1
4 mikecool
 
08.10.09
16:15
(0) соединяешь источники данных, а объединяешь результаты
5 Mitriy
 
08.10.09
16:16
(4) как-то натянуто ))
6 Mitriy
 
08.10.09
16:18
(0) когда соединяешь, то поля не объединяются...
7 mikecool
 
08.10.09
16:19
(6) :)
8 Живой Ископаемый
 
08.10.09
16:22
скачал видеолекцию чистова, и посмотрел раза три.. и уже не перпутаешь.. если путаешься, то посмотрел еще раз 7...
9 Ctvty
 
08.10.09
16:22
я правильно понял что объединить соединяет по вертикали а соединить по горизонтали?
10 mikecool
 
08.10.09
16:23
(9) не, это гон...
открой описание языка запросов и почитай
11 Aloex
 
08.10.09
16:24
(9) Лучше написать запросик, а не на пальцах рассуждать.
12 Волшебник
 
модератор
08.10.09
16:24
(9) ОБЪЕДИНИТЬ ещё сворачивает одинаковые записи в отличие от ОБЪЕДИНИТЬ ВСЕ
13 Живой Ископаемый
 
08.10.09
16:24
объединение не соединяет, а в остальном - если уж совсем-совсем упрощенно
14 acsent
 
08.10.09
16:24
(9) В качестве метафоры подойдет
15 Волшебник
 
модератор
08.10.09
16:24
СОЕДИНЕНИЕ бывает внешним и внутренним. Внешние соединения бывают левыми, правыми и полными.
16 wason
 
08.10.09
16:25
соединение = умнажения таблиц
ОБЪЕДИНИТЬ =сумма

кажется...
17 Mitriy
 
08.10.09
16:26
(9) когда объединяешь, то просто к строкам одной таблицы тупо добавляешь строки другой, поле в поле, количество полей должно быть одинаковым...
18 mikecool
 
08.10.09
16:26
При определении нескольких источников в списке источников для каждой записи из первой таблицы-источника осуществляется выборка из второй таблицы-источника, и т. д. Таким образом, в результате запроса формируются все возможные комбинации всех записей из всех указанных источников.

Соединения бывают нескольких видов; они описываются следующими правилами:

<Перечень соединений>

<Соединение> [<Перечень соединений>]

<Соединение>

[ВНУТРЕННЕЕ] СОЕДИНЕНИЕ <Описание источника>
ПО <Условие отбора> |
ЛЕВОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ <Описание источника>
ПО <Условие отбора> |
ПРАВОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ <Описание источника>
ПО <Условие отбора> |
ПОЛНОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ <Описание источника>
ПО <Условие отбора> |

В общем случае <Перечень соединений> может содержать и описывать не только одно соединение (двух источников), но и несколько соединений нескольких источников сразу.

<Описание источника> содержит описание исходной таблицы – см. Описание источников запроса.

<Условие отбора> содержит условия, в соответствии с которыми в выборке необходимо соединить данные из исходных таблиц – источников запроса. Правила описания условий в языке запросов рассматриваются в Условия в языке запросов.

Ключевые слова ЛЕВОЕ, ПРАВОЕ и ПОЛНОЕ уточняют характер соединения. Слова ВНУТРЕНЕЕ или ВНЕШНЕЕ можно не указывать вообще, они повышают наглядность и удобочитаемость текста запроса.

Соединяемые источники не равнозначны между собой, и в некоторых случаях результат зависит от того, какая таблица указана первой, до ключевого слова СОЕДИНЕНИЕ (слева от него), а какая – второй (справа).



Объединение запросов
В языке запросов имеется возможность объединять несколько запросов; при этом записи, полученные с помощью каждого из объединяемых запросов, будут собраны в один результат запроса.

При объединении каждый запрос собирает данные независимо, а такие операции, как упорядочивание результатов и расчет итогов выполняются уже над результатом объединения запросов.

Поля результата запроса будут называться так, как описано в списке полей выборки первого из объединяемых запросов. Поля выборки остальных запросов сопоставляются с полями результата в соответствии с порядком их следования в списке полей выборки. Объединяемые запросы должны иметь одинаковое количество полей в списке полей выборки.

Если поля выборки объединяемых запросов имеют разный тип, то поля результата запроса будут иметь составной тип.

Объединение запросов описывается по следующему правилу:

<Объединение запросов>

ОБЪЕДИНИТЬ [ВСЕ]
<Описание запроса>
[<Объединение запросов>]

Объединение запросов начинается с обязательного ключевого слова ОБЪЕДИНИТЬ, после которого следует описание присоединяемого запроса. Далее может присоединяться еще один запрос и т. д.

По умолчанию при объединении запросов полностью одинаковые строки в результате запроса, сформированные разными запросами, заменяются одной. Если требуется, чтобы были оставлены разные строки, необходимо указать ключевое слово ВСЕ.

Продам СП, Дорого (с) ДенисЧ (?)
19 Волшебник
 
модератор
08.10.09
16:26
(16) Если под "умножением" понимается декартово произведение таблиц, то это вовсе не соединение.
20 Aloex
 
08.10.09
16:27
(16)...кажется.
21 Волшебник
 
модератор
08.10.09
16:28
(17) Это если ОБЪЕДИНИТЬ ВСЕ, а если просто ОБЪЕДИНИТЬ, то можно считать, что неявно добавляется РАЗЛИЧНЫЕ.
22 tyrm
 
08.10.09
16:29
(18) ДенисЧ ?
23 КнОпка
 
08.10.09
16:30
(18) умничка )
24 acsent
 
08.10.09
16:31
Человек просил образно и сам себе и ответил.
Не умеете вы образно мыслить. Все определениями да ЖКК
25 mikecool
 
08.10.09
16:31
(23) (пока ВР не видит) фотку повернешь?
26 mikecool
 
08.10.09
16:32
(24) человек образно ответил неправильно, надо один раз понять и усе
27 acsent
 
08.10.09
16:32
Образно он оветил как раз правильно
28 КнОпка
 
08.10.09
16:32
(25) это тебе сказали(24)? )
29 КнОпка
 
08.10.09
16:34
(24) если проще то соединение это соединение данных а объединение это для результата. правильно? )
30 SerMaxim
 
08.10.09
16:35
Советую прочитать книжку по SQL. Возникнет понимание механизмов 1С в плане запросов, умение оптимизировать конструкции и делать выборки по-взрослому. Могу сказать то, что механизм запросов в 1С достаточно мощный, даже в сравнении Oracle
31 acsent
 
08.10.09
16:35
(29) По вертикали и по горизонтали мне больше понравилось
32 mikecool
 
08.10.09
16:35
(31) полное соединение как ни странно тоже по вертикали может...
33 mikecool
 
08.10.09
16:36
(30) вот не надо таких сравнений...
34 acsent
 
08.10.09
16:36
(32) Это же не определение )) Это визуальный образ.
35 Живой Ископаемый
 
08.10.09
16:36
36 acsent
 
08.10.09
16:37
(33) Плохой бы из тебя учитель получился
37 КнОпка
 
08.10.09
16:37
(31) а мне нет. (
38 mikecool
 
08.10.09
16:37
(36) я это с детства знал...
39 acsent
 
08.10.09
16:38
(37) Расскажи свой ВИЗУАЛЬНЫЙ образ
40 mikecool
 
08.10.09
16:39
(37) мне в горизонтали больше нравится, чем в вертикали ;)
41 1c_asp
 
08.10.09
16:40
(0) это вааще о чем ? про union и join что ли ?
42 КнОпка
 
08.10.09
16:40
(39) см (29) т.е. для чего именно команда служит, т.е. используется
43 КнОпка
 
08.10.09
16:41
горизонталь и вертикаль для чего? для результата так?
44 КнОпка
 
08.10.09
16:42
Вот Волшебник использует понятие декартово произведение или умножение...не понимаю. (
45 Mitriy
 
08.10.09
16:42
(43) любой вопрос для результата...
46 Mitriy
 
08.10.09
16:42
(45)* запрос
47 acsent
 
08.10.09
16:43
(44) Это уже для учеников постарше ))
48 КнОпка
 
08.10.09
16:43
(45) соединение- для источника данных например
49 Живой Ископаемый
 
08.10.09
16:44
2(44) В первой таблице - 1000 строк, во второй таблице 1000 строк... Если мы соединим обе таблицы, не указав правильно по какому полю соединять, то в рещультирующем запросе окажется 1000*1000 строк (потому что для каждой строки одной таблицы, как бы будут соответсвовать все строки второй таблицы).. Таблицы как бы перемножатся
50 Mitriy
 
08.10.09
16:45
51 Живой Ископаемый
 
08.10.09
16:45
Это все потому что множества и скл-запросы нужно учить в 3-5 летнем возрасте, до того как начинаешь учить сложения и вычитание, то есть арифметику.. Потому что потом эта раифметика мешает
52 КнОпка
 
08.10.09
16:46
спс
53 acsent
 
08.10.09
16:47
(51) ты в 3 года уже знал что такое множество?
54 Живой Ископаемый
 
08.10.09
16:47
2(53) Также как и ты... ты мог выделить на картинке множество яблок, и не спутал бы его со множеством берез.
55 КнОпка
 
08.10.09
16:47
(49) а если в соединение указать поле то будет просто выборка?
56 Stim
 
08.10.09
16:48
так на чем порешили-то?
57 Mitriy
 
08.10.09
16:49
(55) ты все перепутала...
58 КнОпка
 
08.10.09
16:49
мне реляционные базы мешают честно говоря (
59 Живой Ископаемый
 
08.10.09
16:50
2(55) Ну.... скажем так... в худшем случае соединение вернет декартово произведение... в лучшем случае - например 1000 строк. (если одной строке одной таблицы наша связь поставит в соответствие одну строку другой), но может быть и 2000 строк, если одной строке одной таблицы может соответсвовать 2 строки другой.. И так далее вплоть до 1000*1000... больше вроде не может быть. :)
60 КнОпка
 
08.10.09
16:52
(59) ну да- отношение один ко многим
61 acsent
 
08.10.09
16:52
(54) Это при том что у множества нет определения
62 КнОпка
 
08.10.09
16:53
(60)+ это для одной строки таблицы а так получается многие ко многим... )
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.