Этот вопрос основан на следующий вопрос, но с дополнительным требованием: PostgreSQL: How to find the last descendant in a linear "ancestor-descendant" relationshipКак найти последнего потомка (что соответствует другим критериям) в линейном «предок-потомок» отношения
В принципе, то, что мне нужно это оператор Postgre-SQL, который находит последнего потомка в линейном соотношении «предок-потомок», который соответствует дополнительным критериям.
Пример:
Здесь содержание таблицы «RELATIONSHIP_TABLE»:
id | id_ancestor | id_entry | bool_flag
---------------------------------------
1 | null | a | false
2 | 1 | a | false
3 | 2 | a | true
4 | 3 | a | false
5 | null | b | true
6 | null | c | false
7 | 6 | c | false
Каждая запись в пределах определенной иерархии имеет тот же «id_entry» Есть 3 различных «предок-потомок» отношения в этот пример:
1. 1 <- 2 <- 3 <- 4
2. 5
3. 6 <- 7
Вопрос PostgreSQL: How to find the last descendant in a linear "ancestor-descendant" relationship показывает, как найти последнюю запись каждого отношения. В приведенном выше примере:
1. 4
2. 5
3. 7
Итак, что мне нужно на этот раз последний потомок от «id_entry», чьи «bool_flag» установлена истина. В приведенном выше примере:
1. 3
2. 5
3. <empty result>
Кто-нибудь знает решение?
Заранее спасибо :)
QStormDS
Я, ваш пример, отношения между оркестрами сортируются (например, у предков всегда есть меньшие идентификаторы, а затем деканданты). Это всегда в вашем случае? –
Я уверен, что ответ на первый вопрос неверен; Я не могу понять, как это может быть связано с цепями родословной. –
Должна ли запись с {id = 5, id_entry = b, bool_flag = True} быть также в ожидаемом выходе? – wildplasser