В табличке лежит след. дерево (пока что только дерево – не произвольный граф):
source_id | target_id |
---|
10 | 15 |
10 | 20 |
15 | 30 |
15 | 35 |
35 | 40 |
40 | 45 |
with tree(source_id, target_id) as (
values (10, 15), (10, 20), (15, 30), (15, 35), (35, 40), (40, 45))
select * from tree
На выходе нужно полчить что-то вроде
{10: {15: {30: None, 35: {40: {45: None}}}, 20: None}}
для дальнейшей работы в python.
Можно ли это сделать средствами SQL? Хотелось бы вытащить все деревья из таблички одним запросом. Может как-то с помощью рекурсивного CTE?