I think it's only posible if you know how many levels you have in your structure. Otherwise you need some kind of recursive
what I think is not possible do in one select statement - loop in PL/SQL or Transact SQL could solve that.
For your scenario (2 levels) you can use this statement:
Code:
select name
from category c1
where not exists (select 1 from category c2 where c2.parent = c1.category_id)
and parent in (select category_id from category c3 where c3.name = 'PORTABLE ELECTRONICS' -- first level
union all
select category_id from category c4 where c4.parent = (select category_id from category c3 where c3.name = 'PORTABLE ELECTRONICS')) -- second level
name
------------
FLASH
Single CD
3 CD Changer
5 CD Changer
2 WAY RADIOS