Создадим и заполним данными таблицы:
create table kk_employee (id integer, fio varchar2(50), boss_id integer, wage integer);
insert into kk_employee (id, fio, boss_id, wage) values (1, 'Антон Юрьевич', null, 300);
insert into kk_employee (id, fio, boss_id, wage) values (2, 'Дмитрий Анатольевич', 1, 200);
insert into kk_employee (id, fio, boss_id, wage) values (3, 'Михаил Иванович', 1, 190);
insert into kk_employee (id, fio, boss_id, wage) values (4, 'Андрей Иванович', 2, 100);
insert into kk_employee (id, fio, boss_id, wage) values (5, 'Борис Кимович', 2, 60);
insert into kk_employee (id, fio, boss_id, wage) values (6, 'Мария Владимировна', 3, 125);
insert into kk_employee (id, fio, boss_id, wage) values (7, 'Антон Алексеевич', 3, 80);
insert into kk_employee (id, fio, boss_id, wage) values (8, 'Михаил Юрьевич', 3, 140);
insert into kk_employee (id, fio, boss_id, wage) values (9, 'Рашитзай Марданович', 3, 105);
insert into kk_employee (id, fio, boss_id, wage) values (10, 'кошка Мэгги', 5, 20);
insert into kk_employee (id, fio, boss_id, wage) values (11, 'черепашка Ниндзя', 4, 15);
insert into kk_employee (id, fio, boss_id, wage) values (12, 'кот Мурзик', 7, 10);
insert into kk_employee (id, fio, boss_id, wage) values (13, 'мышь Пухлик', 12, 3);
create table kk_hobby (id integer, hobby varchar2(50));
insert into kk_hobby (id, hobby) values (1, 'клеить самолетики');
insert into kk_hobby (id, hobby) values (2, 'лепить из пластилина');
insert into kk_hobby (id, hobby) values (3, 'рисовать карикатуры');
insert into kk_hobby (id, hobby) values (4, 'собирать марки');
insert into kk_hobby (id, hobby) values (5, 'выращивать орхидеи');
insert into kk_hobby (id, hobby) values (6, 'разводить щенков');
insert into kk_hobby (id, hobby) values (7, 'писать мемуары');
insert into kk_hobby (id, hobby) values (8, null);
insert into kk_hobby (id, hobby) values (9, null);
Можно написать итоговый запрос, выделив раскручивание иерархии в отдельный подзапрос:
with a as
(select id, lpad(chr(9), level - 1, chr(9)) || fio as name
from kk_employee
connect by prior id = boss_id
start with boss_id is null)
select a.name, h.hobby from a left join kk_hobby h on a.id = h.id;
А можно и соединить таблицы, раскручивая иерархию после соединения:
select lpad(chr(9), level - 1, chr(9)) || u.fio as name, h.hobby
from kk_employee u
left join kk_hobby h
on u.id = h.id
connect by prior u.id = u.boss_id
start with u.boss_id is null;