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

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

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

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


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