with recursive Ancestor(a,d) as (select parent as a, child as d from ParentOf union select Ancestor.a , ParentOf.child as d from Ancestor, ParentOf where Ancestor.d