pl/sql иерархическое расположение данных

Таблица tMain:

+----+-------+---------+
| ID | name  | id_ref  |
+----+-------+---------+
| 1  | amine |      4  |
| .. |       |         |
+----+-------+---------+

Таблица tTree:

+----+--------+-----------+
| ID |  name  | id_parent |
+----+--------+-----------+
|  1 | root   | null      |
|  2 | child1 | 1         |
|  3 | child2 | 2         |
|  4 | child3 | 3         |
+----+--------+-----------+

Итак, у меня есть таблицы, которые я хотел бы «подключить». Таблица «tMain» содержит некоторые данные и внешний ключ, ссылающийся на таблицу tTree (ссылка на самый нижний дочерний элемент). Я хотел бы использовать один запрос, чтобы получить все данные из tMain вместе с собранным путем из tTree. Это будет выглядеть так:

+----+-------+--------+---------------------------+
| ID | name  | id_ref |           Path            |
+----+-------+--------+---------------------------+
| 1  | amine |      4 | root/child1/child2/child3 |
| .. |       |        |                           |
+----+-------+--------+---------------------------+

person okaerin    schedule 30.06.2014    source источник
comment
Ознакомьтесь с оператором connect by или рекурсивными общими табличными выражениями. Это было задано много раз раньше. И почему вы думаете, что вам нужна хранимая процедура?   -  person a_horse_with_no_name    schedule 30.06.2014
comment
я вроде знаю, как подключиться оператором, но я не мог придумать комбинацию, которая дала бы мне желаемый результат   -  person okaerin    schedule 30.06.2014


Ответы (1)


person    schedule
comment
именно то, что мне было нужно - person okaerin; 30.06.2014
comment
Имейте в виду, что в зависимости от количества ваших данных запрос может быть неоптимальным с точки зрения производительности и что для особых случаев существует более производительный запрос. Но это будет уже другая тема. Кроме этого, пожалуйста. :-) - person peter.hrasko.sk; 30.06.2014
comment
ну, это действительно довольно много данных, но я еще не видел проблем с производительностью - person okaerin; 01.07.2014