Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / хитрый запрос / 5 сообщений из 5, страница 1 из 1
01.12.2006, 11:00
    #34169569
tier.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хитрый запрос
приветствую, господа.
есть задача, и я никак не могу придумать как ее решить, кроме как хранимой процедурой. а хотелось бы средствами только самого SQL. итак: есть 2 таблицы. в первой одно поле (text) с записями такого содержания:
'aaa'
'bbb'
'ccc'

во второй таблице несколько полей, но это несущественно в принципе. одно из них (text) содержит такие записи:
'dfdfadf'
'bbbasd'
'cccwadas'
'yyyasfasdf'

нужно сделать view или хотя бы просто SELECT-запрос, который из второй таблицы выбирает только записи, которые в указанном поле не начинаются ни с одного из значений указанного поля первой таблицы. т.е. записи со значениями 'bbbasd'
'cccwadas' не должны выводиться.

спасибо
...
Рейтинг: 0 / 0
01.12.2006, 11:34
    #34169692
st_serg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хитрый запрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
postgres=# select * from tab1;
  f
-----
 aaa
 bbb
 ccc
(записей:  3 )

postgres=# select * from tab2;
     f
------------
 dfdfadf
 bbbasd
 cccwadas
 yyyasfasdf
(записей:  4 )

postgres=# select f from tab2 except select tab2.f from tab1, tab2 where tab2.f like tab1.f || '%';
     f
------------
 dfdfadf
 yyyasfasdf
(записей:  2 )

postgres=# select f from tab2 where not exists (select  1  from tab1 where tab2.f like tab1.f || '%');
     f
------------
 dfdfadf
 yyyasfasdf
(записей:  2 )

postgres=#
вроде так
...
Рейтинг: 0 / 0
01.12.2006, 15:50
    #34171014
tier.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хитрый запрос
ок, спасибо.
а какой вариант из двух будет быстрее работать, подскажите пожалуйста?
...
Рейтинг: 0 / 0
01.12.2006, 16:12
    #34171082
st_serg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хитрый запрос
мне кажется второй вариант, хотя хз. реальные данные у тебя, вот и проверь )
...
Рейтинг: 0 / 0
01.12.2006, 17:52
    #34171440
Jelis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хитрый запрос
Быстрее будет работать если на текстовое поле индекс повесиш. При like 'blabla%' постгрес будет его использовать.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / хитрый запрос / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]