У меня есть таблица с рекурсивными данными. я оставил данные соединения из другой таблицы, чтобы получить дополнительную информацию об этом объекте. первые 2 столбца взяты из таблицы A, последний столбец - из таблицы B. Результат выглядит следующим образом:
+-------+--------+------+
| CHILD | PARENT | B_ID |
+-------+--------+------+
| 1 | null | null |
| 2 | 1 | 100 |
| 3 | null | null |
| 4 | 3 | null |
| 5 | 4 | 101 |
| 6 | null | null |
| 7 | 6 | null |
| 8 | 7 | null |
| 9 | 7 | 102 |
| 10 | 9 | 103 |
+-------+--------+------+
что было сделано для запроса данных с иерархической функцией:
select child, parent, b_id
from table_a
left join table_b on table_a.child = table_b.id
start with parent is null
connect by prior child = parent
order siblings by child
моя проблема заключается в том, что для каждого уровня у меня может быть более 1 B_ID. то, что мне нужно знать, это только 1 B_ID, который отражает таблицу B в качестве ссылки. кроме всех потомков с parent = 1, в этом случае мне нужны все строки. я бы использовал внутреннее соединение, но мне нужен путь к этой ссылочной строке, а дополнительная информация (в таблице C) относится к дочерним 6, 7, 8 и / или 9.
+-------+--------+------+
| CHILD | PARENT | B_ID |
+-------+--------+------+
| 6 | null | null |
| 7 | 6 | null |
| 8 | 7 | null |
| 9 | 7 | 102 |
+-------+--------+------+
у вас естьЕсть идеи, как решить эту проблему?