Имя: Пароль:
1C
1С v8
cross join в 1с
,
0 qeos
 
01.08.12
09:12
как я понимаю такого в запросах 1с нет, но мне надо. Поэтому вопрос: чем заменить?

в условиях: надо соединить две таблицы по полю типа "Строка" причем длинная строка, соответственно соединяться будет долго, поэтому еще бы хорошо было б какой-то быстрый вариант.

сейчас делается перебором, но если разное количество строк в таблицах, это усложняется и увеличивается время. поэтому подумался простой способ переделать в запрос.

дайте предложения..
1 Maxus43
 
01.08.12
09:12
есть
2 Maxus43
 
01.08.12
09:12
ИЗ А,Б
3 qeos
 
01.08.12
09:15
|ВЫБРАТЬ
                  |    ВТ1.ПолноеИмя КАК Файл1,
                  |    ВТ1.Размер КАК Размер1,
                  |    ЕСТЬNULL(ВТ1.ЭтоКаталог, ЛОЖЬ) КАК ЭтоКаталог1,
                  |    ВТ2.ПолноеИмя КАК Файл2,
                  |    ВТ2.Размер КАК Размер2,
                  |    ЕСТЬNULL(ВТ2.ЭтоКаталог, ЛОЖЬ) КАК ЭтоКаталог2
                  |ИЗ
                  |    ВТ1 КАК ВТ1
                  |        ПОЛНОЕ СОЕДИНЕНИЕ ВТ2 КАК ВТ2
                  |        ПО (ВТ1.ИмяФайла ПОДОБНО ВТ2.ИмяФайла)";


т.е. в последних будет нечто такое:

                  |ИЗ
                  |    ВТ1 КАК ВТ1,
                  |        ВТ2 КАК ВТ2";


а как же не равные по полю???
4 Maxus43
 
01.08.12
09:16
ты спросил про кросс джойн, вуаля. а надо тебе не совсем его
5 spock
 
01.08.12
09:17
"cross join" и "соединить две таблицы по полю типа "Строка""??
6 izekia
 
01.08.12
09:18
(0) кстати, длину строки можно озвучить, может и не соединить, по идее можно высчитывать некий хэш и по нему джойнить
7 qeos
 
01.08.12
09:19
(4) точно... невнимательно прочитал тут http://www.profstat.ru/article/sql-joins.html
8 qeos
 
01.08.12
09:19
(6) (!) спасибо!! отличная идея
9 Ненавижу 1С
 
гуру
01.08.12
09:22
(7) странная иллюстрация JOIN с помощью диаграмм Венна
10 Shurjk
 
01.08.12
09:29
(0) Простое соединение без условий и т.д. будет тем самым cross join
11 qeos
 
01.08.12
09:38
(10) ага, только добавить проверку на NULLы
12 qeos
 
01.08.12
09:38
(9) почему странное? помоему наглядно
13 Shurjk
 
01.08.12
09:43
(11) откуда там они возьмутся?
14 Maxus43
 
01.08.12
09:45
(13) а чего (2) не нравится? это кошерный кросс джойн
15 Shurjk
 
01.08.12
09:47
(14) все там нормально только запятую убрать, но ТС по моему до сих пор считает что это не реализовано в 1с.
16 Ненавижу 1С
 
гуру
01.08.12
09:48
(12) ну не знаю
как кстати это все интерпретировать, когда условие в JOIN не равенство, а например "больше или равно" или "подобно"
17 Ненавижу 1С
 
гуру
01.08.12
09:49
А ВНУТРЕННЕЕ СОЕДИНЕНИЕ Б ПО ИСТИНА
18 Shurjk
 
01.08.12
09:50
(16) Все строки что попадают в условие находятся на пересечении областей.
19 Ненавижу 1С
 
гуру
01.08.12
09:52
(18) вся беда в том, что один и тот же элемент множества А может удовлетворять предикату с разными элементами множества Б
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший