Ciao a tutti
In un database ho una tabella composta da 3 campi:

categoryid
catparentid
catname



tramite una select vorrei ottenere i record relativi all' intero albero delle categorie:

cat1/cat2/cat3/cat4 ecc...

con i relativi categopryid

Con la seguente select ho ottenuto i record costituiti dai soli nomi, ma vorrei ottenere anche i vari id associati

codice:
select root.catname  as root_catname
     , down1.catname as down1_catname
     , down2.catname as down2_catname
     , down3.catname as down3_catname
     , down4.catname as down4_catname
     , down5.catname as down5_catname
     , down6.catname as down6_catname
     , down7.catname as down7_catname
  from cart_categories as root
left outer
  join cart_categories as down1
    on down1.catparentid = root.categoryid
left outer
  join cart_categories as down2
    on down2.catparentid = down1.categoryid
left outer
  join cart_categories as down3
    on down3.catparentid = down2.categoryid
left outer
  join cart_categories as down4
    on down4.catparentid = down3.categoryid
left outer
  join cart_categories as down5
    on down5.catparentid = down4.categoryid
left outer
  join cart_categories as down6
    on down6.catparentid = down5.categoryid
left outer
  join cart_categories as down7
    on down7.catparentid = down6.categoryid
Ho provato così, alternando gli id al nome della categoria:

codice:
select root.categoryid  as root_categoryid
     , down1.catname as down1_catname
     , down2.categoryid as down2_categoryid
     , down3.catname as down3_catname
     , down4.categoryid as down4_categoryid
     , down5.catname as down5_catname
     , down6.categoryid as down6_categoryid
     , down7.catname as down7_catname
     , down8.categoryid as down8_categoryid
     , down9.catname as down9_catname
     , down10.categoryid as down10_categoryid
     , down11.catname as down11_catname
     , down12.categoryid as down12_categoryid
     , down13.catname as down13_catname
  from cart_categories as root
left outer
  join cart_categories as down1
    on down1.catparentid = root.categoryid
left outer
  join cart_categories as down2
    on down2.catparentid = down1.categoryid
left outer
  join cart_categories as down3
    on down3.catparentid = down2.categoryid
left outer
  join cart_categories as down4
    on down4.catparentid = down3.categoryid
left outer
  join cart_categories as down5
    on down5.catparentid = down4.categoryid
left outer
  join cart_categories as down6
    on down6.catparentid = down5.categoryid
left outer
  join cart_categories as down7
    on down7.catparentid = down6.categoryid
left outer
  join cart_categories as down8
    on down8.catparentid = down7.categoryid
left outer
  join cart_categories as down9
    on down9.catparentid = down8.categoryid
left outer
  join cart_categories as down10
    on down10.catparentid = down9.categoryid
left outer
  join cart_categories as down11
    on down11.catparentid = down10.categoryid
left outer
  join cart_categories as down12
    on down12.catparentid = down11.categoryid
left outer
  join cart_categories as down13
    on down13.catparentid = down12.categoryid
Ma qualcosa non funziona: viene saltato il primo livello delle categorie

Qualche suggerimento? Grazie in anticipo