Similar to Frusterated's answer+1, but with a few different assumptions.
drop table table1;
drop table table2;
drop table table3;
create table table1 (ID Number(3), Name Varchar2(10), SizeX number(3));
create table table2 (ID Number(3), ID_table1 Number(3), Name Varchar2(10), SizeX number(3));
create table table3 (ID Number(3), ID_table2 Number(3), Name Varchar2(10), SizeX number(3));
insert into table1 values (1,'a',1);
insert into table2 values (10, 1, 'a-a', 3);
insert into table2 values (11, 1, 'a-b', 4);
insert into table3 values (100, 11, 'a-b-a',8);
insert into table3 values (101, 11, 'a-b-b',9);
insert into table1 values (2,'b',2);
insert into table2 values (12, 2, 'b-a', 5);
insert into table2 values (13, 2, 'b-b', 6);
insert into table3 values (102, 13, 'b-b-a',10);
insert into table2 values (14, 2, 'b-c', 7);
commit;
SELECT id, parent, name, sizex, level
FROM
(
SELECT id, null parent, name, sizex FROM Table1
UNION ALL
SELECT id, id_table1, name, sizex FROM TABLE2
UNION ALL
SELECT id, id_table2, name, sizex FROM TABLE3
)
START WITH parent IS NULL
CONNECT BY (prior id = parent);
Table1 PARENT OF Table2 PARENT OF Table3? – FrustratedWithFormsDesigner Nov 13 '12 at 18:48