I want to retrieve the parentid of an id, if that parentid has a parent again retrieve it, and so on. Kind of hierarchy table.
id----parentid
1-----1
5-----1
47894--5
47897--47894
am new to sql server and tried, some queries like:
with name_tree as
(
select id, parentid
from Users
where id = 47897 -- this is the starting point you want in your recursion
union all
select c.id, c.parentid
from users c
join name_tree p on p.id = c.parentid -- this is the recursion
)
select *
from name_tree;
It is giving me only one row. and also I want to insert these records into a temporary table variable. How can I do this. thanks in advance. sorry for asking the simple question(though not to me)
Try this to get all parents of a child
Click here to view result
EDIT :
If you want to insert into a table variable, you can do something like:
Click here to view result
you didn't mention the desired output and input. However you can try like this,
Your query is doing recursion but in opposite direction. So if you change starting point to:
then you will have user
1
and all his successors