Здравствуйте, Kastusik, Вы писали:
K>Надо наиболее оптимальным способом (одним запросом) выбрать все вышестоящие элементы (всех старших родственников) по заданному id.
В текущей структуре одним запросом не удасться.
Можно изменить представление данных, см.
http://gzip.rsdn.ru/article/db/Hierarchy.xmlАвтор(ы): Михаил Голованов
Дата: 28.01.2002
так что ли ?
create table tbl (id int not null, subid int not null, name char(12))
insert into tbl (id, subid, name) values (1, 0, 'aq')
insert into tbl (id, subid, name) values (2, 0, 'aw')
insert into tbl (id, subid, name) values (3, 0, 'ae')
insert into tbl (id, subid, name) values (4, 0, 'ar')
insert into tbl (id, subid, name) values (5, 0, 'at')
insert into tbl (id, subid, name) values (6, 0, 'ay')
insert into tbl (id, subid, name) values (7, 3, 'au')
insert into tbl (id, subid, name) values (8, 0, 'ai')
insert into tbl (id, subid, name) values (9, 0, 'ao')
insert into tbl (id, subid, name) values (10, 0, 'ao')
insert into tbl (id, subid, name) values (11, 7, 'ao')
insert into tbl (id, subid, name) values (12, 0, 'ao')
insert into tbl (id, subid, name) values (13, 11, 'ao')
select a.* from tbl a, tbl b where b.subid=a.id order by a.id
3 0 ae
7 3 au
11 7 ao
если бы потрудился оформлять сообщения в таком виде то было бы более проще понять что имел ввиду