|
Сравнение множеств в ASE 15
|
|||
---|---|---|---|
#18+
Толи праздники сказываются, толи лыжи не едут... Есть две таблицы 1-маршрут, 2-путевые точки. маршрут id_pathdate_pathdescription101.01.2010...202.01.2010...303.01.2010... Путевые точки (связь по id_path) id_wpid_pathlatlon()sort_idx111112122231333421115222262333735518366293773 Из примера видно, что маршруты с id_path 1 и 2 одинаковые. Координаты(lat и lon)и последовательность(sort_idx) точек у них совпадают. Нужно выбрать все не повторяющиеся маршруты. Либо 1 и 3, либо 2 и 3. Помогите ПЛЗ. Заранее благодарен всем откликнувшимся. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2010, 11:31 |
|
Сравнение множеств в ASE 15
|
|||
---|---|---|---|
#18+
Задача достаточно нетривиальная. Реляционные БД плохо приспособлены для работы со множествами, так скажем совсем не приспособлены. Просто как подход. Необходимо сделать однозначную трансляцию матрицы (точек пути) в простое значение. Этим значением, например, может быть строковое представление пути. Хранить его можно в таблице маршрутов. id_pathdate_pathdescriptionstr101.01.2010...(1;1)->(2;2)->(3;3)202.01.2010...(1;1)->(2;2)->(3;3)303.01.2010...(5;5)->(6;6)->(7;7) Затем можно будет сделать просто запрос: Код: plaintext 1. 2.
В качестве "простого значения" может быть не только строковая переменная, но и числовая, бинарная и т.п. Главное придумать однозначную обратимую функцию перевода массива в значение. Теоретически, его можно сделать хэшем приведенной строки. Но возникает опасность, когда совершенно два различных пути будут свернуты в один из-за того, что у них совпадет хэш. Потому требование об обратимости функции является обязательным. И вторая подзадача, обеспечить актуализацию соответствия маршрута и его "слепка". ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2010, 19:15 |
|
Сравнение множеств в ASE 15
|
|||
---|---|---|---|
#18+
Спасибо iLLer, Идея с хэшами точек в таблице маршрутов - это первое что мне пришло в голову. Но я надеялся, что есть более простой способ. Но думаю что все таки придется использовать хэш. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2010, 22:12 |
|
Сравнение множеств в ASE 15
|
|||
---|---|---|---|
#18+
Где вы тут работу с множествами увидали ? Нет её тут. Была бы -- SQL как раз бы и был в тему. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2010, 23:51 |
|
Сравнение множеств в ASE 15
|
|||
---|---|---|---|
#18+
cherrex_DenЛибо 1 и 3, либо 2 и 3. А с чего это ты решил, что 1 -- не повторяющийся ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2010, 23:52 |
|
Сравнение множеств в ASE 15
|
|||
---|---|---|---|
#18+
MasterZiv Где вы тут работу с множествами увидали ? Нет её тут. Была бы -- SQL как раз бы и был в тему. Та какая разница. Название задачи на ее решение не влияет. MasterZiv А с чего это ты решил, что 1 -- не повторяющийся ? Не понял я вопроса. Ну да, 1 и 2 повторяются ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2010, 00:35 |
|
Сравнение множеств в ASE 15
|
|||
---|---|---|---|
#18+
On 08.11.2010 0:35, cherrex_Den wrote: > А с чего это ты решил, что 1 -- не повторяющийся ? > Не понял я вопроса. Ну да, 1 и 2 повторяются Так с чего ты хочешь, чтобы 1 был, а 2 -- не было. Они повторяются, оба. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2010, 10:25 |
|
Сравнение множеств в ASE 15
|
|||
---|---|---|---|
#18+
MasterZiv On 08.11.2010 0:35, cherrex_Den wrote: > А с чего это ты решил, что 1 -- не повторяющийся ? > Не понял я вопроса. Ну да, 1 и 2 повторяются Так с чего ты хочешь, чтобы 1 был, а 2 -- не было. Они повторяются, оба. Та любой из них! Ну допустим с максимальной датой(date_path). Т.е. 2-ой ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2010, 12:38 |
|
Сравнение множеств в ASE 15
|
|||
---|---|---|---|
#18+
Можно двумя группировками через промежуточную таблиц 1 группировка по id_path Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2010, 09:23 |
|
|
start [/forum/topic.php?fid=55&msg=36941942&tid=2010479]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 325ms |
total: | 477ms |
0 / 0 |