Per selezionare un ramo di un albero rappresentato da una tabella con il riferimento al padre
Caso: Una tabella referenzia se stessa, dunque descrive alberi. Devo trovare la radice di un albero in cui un qualsiasi nodo abbia una certa proprietà...
es.
RADICE A
- NODO 1 Pippo
- NODO 1.1 Ludovico
- NODO 1.1.1 Beppe
- NODO 2 Pluto
- NODO 3 Paperone
RADICE B
- NODO 4 Betty
- NODO 5 Uguberto
Voglio trovare il ramo in cui un qualsiasi nodo abbia la denominazione Ludovico e dunque mi aspetto di trovare
RADICE A
- NODO 1 Pippo
- NODO 1.1 Ludovico
- NODO 1.1.1 Beppe
- NODO 2 Pluto
- NODO 3 Paperone
SQL consente definizione di query ricorsive
with myTree (UID, ParentUID)
as
(
select UID, ParentUID from MiaTabella where denominazioen like 'Ludovico'
UNION ALL
select MiaTabella.UID, MiaTabella.ParentUID from MiaTabella inner join myTree on myTree.UID = MiaTabella.ParentUID
)
select MiaTabella.UID, MiaTabella.ParentUID from MiaTabella inner join myTree on myTree.UID = MiaTabella.UID