В табличке лежит след. дерево (пока что только дерево – не произвольный граф):
| 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?