Postgres найти вхождение нескольких id в кортеже
есть две таблицы. hash - уникален. id - инкремент
+----------+
| id hash |
+----------+
| 1 asd |
| 2 ddd |
+----------+
+-----------+
| id2 hash2 |
+-----------+
| 1 33 |
| 2 3444 |
| 3 asd |
| 4 ddd |
| 5 34234 |
+-----------+
каким образом можно найти id2 in (1,2) для hash in(asd, ddd) ?
т.е. нужно найти есть ли вхождение из первой таблицы во второй и где это вхождение заканчивается
ну и для данных id2 in (5) тоже нужно найти
Ответы (1 шт):
Автор решения: des1roer
→ Ссылка
with fisrt as (
select id
from table where hash = 'asd'
), second as (
select id
from table where hash = 'ddd'
)
select * from table
where true
and id > (SELECT id FROM fisrt)
and id < (SELECT id FROM second)
- если запрос вернул 0 строк, то следующая строка за asd - искомая