数据库内容 id         id2         name 
1           0           主类1 
2           0           主类2 
3           0           主类3 
4           1           二类a 
5           2           二类b 
6           4           三类 其中id=6的在id=4的下面,而id=4又在id=1,这样就要取出名称并排列一下 主类1   ->   二类a   ->   三类 怎样获取6在第三层下的数据?并能一次性用SQL将“主类1”、“二类a”、“三类”这三个数据依顺序取出呢? 
用一句SQL或是两句SQL都行 

解决方案 »

  1.   


    select 
        s.name AS sName,
        m.name AS mName,
        l.name AS lName 
      from 
        `table` s,`table` m,`table` l 
      where 
        s.Id2 = m.Id1 and m.Id2 = l.Id1;
      

  2.   

    若只想要某一类,加多个条件l.Id1=你指定的那一主类的Id
      

  3.   

    得出的结果不对。想得出以下的结果条件ID=1的时候,会得出以ID=1为值的以下分类名出来主类1
    二类a
    三类 
      

  4.   

    那你上面又写得像打横列的。那就逐个取,用union连起来算了。select name from `table` where Id1=1
    union
    select name from `table` where Id2=1
    union
    select name from `table` a inner join `table` b on a.Id2=b.Id1 where  b.Id2=1;
      

  5.   

    要是加个roate字段就好多了,记录层次
      

  6.   

    4楼的测试有个错误提示:错误代码: 1052
    Column 'name' in field list is ambiguous
    (耗费 0 ms)明明有这个字段。怎么会提示不明确??