假定你的表名是:testtable
select a.name,b.name from testtable a, testable b wher a.tid=b.id
这样取出来的两个字段分别代表名称和它的上级名称,如要其他字段,你自己再修改

解决方案 »

  1.   

    select t2.name as parentName, t1.name as name
       from table_name t1, table_name t2
       where t1.tid = t1.id 
    我没有装数据库,所以没办法测试。楼主自己试试。
      

  2.   

    上面的这个语句会显示不了最高级的"aaa",如果你连"aaa"也要显示,那就用:
    select a.name,b.name from testtable a left join testtable b on a.tid=b.id
    针对不同的数据库,SQL的具体语法会有所不同,可能需要你自己做一些调整,但总体思路就是上面的情况了
      

  3.   

    如bzyzjz() 所述,因为两个字段的名字都是name,所以还要对取出来的字段重新命名,以免冲突
      

  4.   

    楼主说:我要在页面上显示名称和该名称位于哪个名称之下也就是一层就好了。用left join 会出现一些多余的记录的。