Tree table
| node_Id | tree_path::ltree |
|---|---|
| aaaa | aaaa |
| bbbb | aaaa . bbbb |
| cccc | aaaa . bbbb . cccc |
| dddd | aaaa . bbbb . dddd |
| eeee | eeee |
| ffff | eeee . ffff |
Object table
| object_id | node_id_fk | name | type |
|---|---|---|---|
| 1111 | aaaa | name1 | node |
| 2222 | aaaa | name2 | node |
| 3333 | cccc | name3 | node |
| 4444 | dddd | name4 | node |
| 5555 | eeee | name4 | node |
| 6666 | eeee | name6 | node |
| 7777 | bbbb | name7 | node |
| 8888 | dddd | name8 | node |
| 9999 | dddd | name9 | node |
What I want to achieve in two steps:
- Get all entries from the "Object table" for requested node_ids and all ancestor ids in the tree_path in the "Tree table".
- And then add a column
requested_node_idto to response from (1) to show the requested node_id to the "Object table" entries.
For the 1. step, i think, the the query looks something like that
Only the duplicate entries are not shown.
So we get these entries for the requested nodeIds ('bbbb', 'dddd') from the "Object table"
| object_id | node_id_fk | name | type |
|---|---|---|---|
| 1111 | aaaa | name1 | node |
| 2222 | aaaa | name2 | node |
| 7777 | bbbb | name7 | node |
| 1111 | aaaa | name1 | node |
| 2222 | aaaa | name2 | node |
| 4444 | dddd | name4 | node |
| 7777 | bbbb | name7 | node |
| 8888 | dddd | name8 | node |
| 9999 | dddd | name9 | node |
For the 2. step (show column with the requested node_Id) I don't know how the query :( the response should look like this:
| object_id | node_id_fk | name | type | requested_node_id |
|---|---|---|---|---|
| 1111 | aaaa | name1 | node | bbbb |
| 2222 | aaaa | name2 | node | bbbb |
| 7777 | bbbb | name7 | node | bbbb |
| 1111 | aaaa | name1 | node | dddd |
| 2222 | aaaa | name2 | node | dddd |
| 4444 | dddd | name4 | node | dddd |
| 7777 | bbbb | name7 | node | dddd |
| 8888 | dddd | name8 | node | dddd |
| 9999 | dddd | name9 | node | dddd |
Unfortunately only shows the node_id from the "node table" and not the requested node id
I hope the question is clear, leet me know if not