powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите написать запрос
15 сообщений из 15, страница 1 из 1
Помогите написать запрос
    #40098986
Pitrovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация такая.
Есть набор данных (строка) - v1, v2, v3, v4. Прилетает извне в скрипт пачками. В пачке по 10-20-30 штук.
Раньше вставлял просто:
insert into shm.table1 (val1,val2,val3,val4) values (v1, v2, v3, v4),(v1, v2, v3, v4),(v1, v2, v3, v4)

Сейчас задача усложнилась, и мне нужно вставить в table1, только те строки, у которых v1 присутствует в table2, а v2 присутствует в table3.

Как можно реализовать такой запрос?
...
Рейтинг: 0 / 0
Помогите написать запрос
    #40099006
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pitrovich,

Код: sql
1.
2.
3.
4.
5.
6.
insert into shm.table1 (val1,val2,val3,val4) 
select * from (
values (v1, v2, v3, v4),(v1, v2, v3, v4),(v1, v2, v3, v4)
) as data(v1,v2,v3,v4)
where exists (select from table2 t2 where t2.column = v1)
and exists (select from table3 t3 where t3.column = v2)
...
Рейтинг: 0 / 0
Помогите написать запрос
    #40099015
Pitrovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij,
Спасибо, мил человек!
Как просто оказалось - as data и все, а я никак не мог найти как это сделать.
...
Рейтинг: 0 / 0
Помогите написать запрос
    #40100698
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Есть две таблицы в которых одна колонка содержит "https://domen.ru/p/n9s8hxPS4yaEC6n9R?hash=e51eb546-d364-48b7-9784-201e09062e49" ссылки вот такого плана
вторая таблица содержит тектовую колонку с таким содержимым "n9s8hxPS4yaEC6n9R"
нужно найти все id записей из первой таблицы,к которых не будет совпадать выделенное красным
тоесть грубо говоря каждую запись из первой таблицы нужно проверить на соотвествие всем записям из второй таблицы и если соотвествий нет - выдать id этой записи

"
...
Рейтинг: 0 / 0
Помогите написать запрос
    #40100711
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
localhost8080,

[not exists | left join]+ like
...
Рейтинг: 0 / 0
Помогите написать запрос
    #40100712
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Щукина Анна
localhost8080,

[not exists | left join]+ like

Если не затруднит как выглядит целиком запрос - я не очень понимаю эту конструкцию,заранее спасибо
...
Рейтинг: 0 / 0
Помогите написать запрос
    #40100717
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Щукина Анна
localhost8080,

[not exists | left join]+ like


Код: plsql
1.
2.
select id  from links
where not   exists(select l.id from links l left join mongo_link ml  on l.link  like concat( '%',mongo_id,'%'));


попробовал вот так,запрос не работает
...
Рейтинг: 0 / 0
Помогите написать запрос
    #40100719
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Щукина Анна
localhost8080,

[not exists | left join]+ like


left join не подходит,нужно обычный join
...
Рейтинг: 0 / 0
Помогите написать запрос
    #40100722
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
not exists тоже не работает

финальный вид запроса вот такой

Код: java
1.
2.
select id  from links
where id not   in (select l.id from links l join mongo_link ml  on l.link  like concat( '%',mongo_id,'%'));
...
Рейтинг: 0 / 0
Помогите написать запрос
    #40100851
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
localhost8080
попробовал вот так,запрос не работает
...
left join не подходит, нужно обычный join
"Ох уж эти сказочки, ох уж эти сказочники"(с)

Всем подходит, у всех работает, а ему - не подходит, не работает...

Код: sql
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.
--
-- Форма запроса на NOT EXISTS:
with
--
-- Тестовые данные первой таблицы:
  links (id, link) as 
    (
      values (1, 'https://bla-bla-bla/template1/bla-bla')
           , (2, 'https://bla-bla-bla/template2/bla-bla')
           , (3, 'https://bla-bla-bla/template3/bla-bla')
           , (4, 'https://bla-bla-bla/template4/bla-bla')
           , (5, 'https://bla-bla-bla/template5/bla-bla')
    )
--
-- Тестовые данные второй таблицы:
, mongo_link (mongo_id) as
    (
      values ('template1')
           , ('template3')
           , ('template5')
    )
--
-- Основной запрос:
select id 
  from links l
 where not exists 
         (
           select null 
             from mongo_link ml 
            where l.link like concat('%', mongo_id, '%')
         );



Код: sql
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.
--
-- Форма запроса на LEFT JOIN:
with
--
-- Тестовые данные первой таблицы:
  links (id, link) as 
    (
      values (1, 'https://bla-bla-bla/template1/bla-bla')
           , (2, 'https://bla-bla-bla/template2/bla-bla')
           , (3, 'https://bla-bla-bla/template3/bla-bla')
           , (4, 'https://bla-bla-bla/template4/bla-bla')
           , (5, 'https://bla-bla-bla/template5/bla-bla')
    )
--
-- Тестовые данные второй таблицы:
, mongo_link (mongo_id) as
    (
      values ('template1')
           , ('template3')
           , ('template5')
    )
--
-- Основной запрос:
select l.id 
  from links l
  left join mongo_link ml 
    on l.link like concat('%', mongo_id, '%')
 where ml.mongo_id is null;
...
Рейтинг: 0 / 0
Помогите написать запрос
    #40100859
localhost8080
Есть две таблицы в которых одна колонка содержит "https://domen.ru/p/n9s8hxPS4yaEC6n9R?hash=e51eb546-d364-48b7-9784-201e09062e49" ссылки вот такого плана

что за дичь
ну вы хотя бы вытащите в отдельную колонку свой n9s8hxPS4yaEC6n9R и ищите по нему запросто
...
Рейтинг: 0 / 0
Помогите написать запрос
    #40100867
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
бабушкин зайчик

что за дичь
ну вы хотя бы вытащите в отдельную колонку свой n9s8hxPS4yaEC6n9R и ищите по нему запросто

Согласен что дичь.
c удовольствием бы вытащил -как это сделать подскажите если не сложно,так как я попробовал различные регулярки и у меня ничего не вышло
...
Рейтинг: 0 / 0
Помогите написать запрос
    #40100886
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну и еще вопрос - в первой таблице где ссылки там 90 млн записей,во второй таблице где ключи- там 70 тысяч записей

Нужен запрос такого плана ,чтобы его выполенение не заняло ближайший месяц

в данный момент вешаю индекс на ссылки из первой таблицы и ключи из второй

сам индекс выглядит вот так
Код: plsql
1.
CREATE INDEX link_gin ON links USING gin (link gin_trgm_ops);
...
Рейтинг: 0 / 0
Помогите написать запрос
    #40100945
localhost8080
как это сделать подскажите

да хоть бы и вот так:
Код: php
1.
/\/(\w+?)\?hash/


localhost8080
в данный момент вешаю индекс на ссылки из первой таблицы и ключи из второй

на ссылки? вот на это всё индекс??
авторhttps://domen.ru/p/n9s8hxPS4yaEC6n9R?hash=e51eb546-d364-48b7-9784-201e09062e49
где этот смайлик падающий в обморок...
да и какой от такого индекса толк вообще
...
Рейтинг: 0 / 0
Помогите написать запрос
    #40101009
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
бабушкин зайчик
localhost8080
как это сделать подскажите

да хоть бы и вот так:
Код: php
1.
/\/(\w+?)\?hash/


localhost8080
в данный момент вешаю индекс на ссылки из первой таблицы и ключи из второй

на ссылки? вот на это всё индекс??
авторhttps://domen.ru/p/n9s8hxPS4yaEC6n9R?hash=e51eb546-d364-48b7-9784-201e09062e49

где этот смайлик падающий в обморок...
да и какой от такого индекса толк вообще
ну теперь да смысла в индексе нет ,я добавил колонку - туда вынесу ключи их и проиндексирую как раз их.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите написать запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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