sql - Find All Parents based on certain record -
i need helps sql code. have 2 tables, first 1 table name
nameid name 1 john 2 paul 3 jessica 4 nancy 5 sam 6 jane 7 jimmy
the second 1 table family
familyid nameid childid 1 1 2 2 1 3 3 2 4 4 3 5 5 3 6 6 5 7
field "nameid" , "childid" in table family connected field "nameid" in table name. if put in tree this
john / \ paul jessica / / \ nancy sam jane / jimmy
what need sql code can find "all" parents record. example :
- i want know parents jane, results : jessica, john
i want know parents jimmy, results : sam, jessica, john
i want know parents nancy, results : paul, john
here go, use recursive cte follows:
declare @pname varchar(20) set @pname = 'jane' ;with recursivefamilycte ( select parentname.name, parentname.nameid, f.childid dbo.family f join name childname on f.childid = childname.nameid join name parentname on f.nameid = parentname.nameid childname.name = @pname union select parentname.name, parentname.nameid, f.childid dbo.family f join name childname on f.childid = childname.nameid join name parentname on f.nameid = parentname.nameid join recursivefamilycte on f.childid = recursivefamilycte.nameid ) select name recursivefamilycte
Comments
Post a Comment