iamnamja
asked on
Query to bring up parent child relationships
Hi,
I have a set of data that contains the ID that links a child node to a parent. But the issue is that there are multiple levels and I need a way to query all the levels.
For example, the data set is as follows:
Child ID Child Name Parent ID Parent Name
30 AAA 20 AA
31 BBB 21 BB
32 CCC 22 CC
33 DDD 23 DD
34 EEE 24 EE
35 FFF 25 FF
20 AA 10 A
21 BB 11 B
22 CC 12 C
23 DD 13 D
24 EE 14 E
25 FF 15 F
10 A
11 B
12 C
13 D
14 E
15 F
I need a query that I can use to get the following results:
Child ID Child Name Parent 0 ID Parent 0 Name Parent 1 ID Parent 1 Name
30 AAA 20 AA 10 A
31 BBB 21 BB
32 CCC 22 CC
.........
Basically I need to show all the parents of each child ID that leads to the parent ID. Any suggestions on how I can query this? Thanks.
I have a set of data that contains the ID that links a child node to a parent. But the issue is that there are multiple levels and I need a way to query all the levels.
For example, the data set is as follows:
Child ID Child Name Parent ID Parent Name
30 AAA 20 AA
31 BBB 21 BB
32 CCC 22 CC
33 DDD 23 DD
34 EEE 24 EE
35 FFF 25 FF
20 AA 10 A
21 BB 11 B
22 CC 12 C
23 DD 13 D
24 EE 14 E
25 FF 15 F
10 A
11 B
12 C
13 D
14 E
15 F
I need a query that I can use to get the following results:
Child ID Child Name Parent 0 ID Parent 0 Name Parent 1 ID Parent 1 Name
30 AAA 20 AA 10 A
31 BBB 21 BB
32 CCC 22 CC
.........
Basically I need to show all the parents of each child ID that leads to the parent ID. Any suggestions on how I can query this? Thanks.
ASKER
So the only logical method is to extend to query to a possible number of parent child legs? If there are 10 parent/child hierarchy, then we need to extend to 10?
I was hoping for a simpler solution as there may be more than 10, 20, etc...
I was hoping for a simpler solution as there may be more than 10, 20, etc...
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
got it. I ended up using VBA code to get this done.
I was hoping there would be a "simpler" method. Thank you
I was hoping there would be a "simpler" method. Thank you
SELECT Child.[Child ID], Child.[Child Name], Child_1.[Parent ID] AS [Parent 0 ID], Child_1.[Parent Name] AS [Parent 0 Name], Child_2.[Parent ID] AS [Parent 1 ID], Child_2.[Parent Name] AS [Parent 1 Name]
FROM (Child LEFT JOIN Child AS Child_1 ON Child.[Parent ID] = Child_1.[Parent ID]) LEFT JOIN Child AS Child_2 ON Child_1.[Parent ID] = Child_2.[Child ID];
you can extend the query by adding copy of the child table to the query and create a left join of the fields Child Id and Parent ID