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 - искомая
→ Ссылка