Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 Получить связанные записи  [new]
alekcvp
Member

Откуда:
Сообщений: 2247
В таблице имеются следующие поля:

id, link_id, ....

Поле link_id ссылается на id записи в этой же таблице, типа предыдущей версии, всегда один к одному.
Вопрос, можно ли как-то одним запросом по id записи (123) получить полную цепочку записей, типа:

123, 98,   ...
98, 74, ...
74, 32, ...
32, null, ...

?
11 июл 20, 18:08    [22165764]     Ответить | Цитировать Сообщить модератору
 Re: Получить связанные записи  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50808

WITH RECURSIVE

Posted via ActualForum NNTP Server 1.5

11 июл 20, 18:16    [22165768]     Ответить | Цитировать Сообщить модератору
 Re: Получить связанные записи  [new]
alekcvp
Member

Откуда:
Сообщений: 2247
Dimitry Sibiryakov,

Примерно так, как я понял?
with recursive
  history as (
    select id, val, link_id from odata where link_id is null
    union all
    select o.id, o.val, o.link_id from odata o
      join history h on h.id = o.link_id)
select id, val, link_id from history;
11 июл 20, 18:34    [22165773]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить