表结构
id   fid  name
1    0    水果类
2    1    苹果
3    1    葡萄fid为父级id号现在 ,只知道 id=2 ,如何通过一条语句就能得到 本行记录的 name 与 fid=1的父级name?
如:得到 水果类-》苹果

解决方案 »

  1.   

    如果只有1层,可以用LEFT JOIN解决,如果不是,递归调用SP解决
      

  2.   

    SELECT * FROM  表1 as a
    left join
    (select * from  表1 ) as b
    WHERE a.fid=b.id and a.id=2这样吗? 执行出错
      

  3.   

    SELECT * FROM  表1 as a
    left join
    (select * from  表1 ) as b
    on a.fid=b.id where a.id=2这样 就可以了
      

  4.   

    SELECT * FROM  表1 as a
    left join
    表1 as b
    on a.fid=b.id where a.id=2
      

  5.   

    SELECT B.NAME,A.NAME
     FROM  TTG as a
     left join
     TTG as b ON a.fid=b.id 
    WHERE  a.id=2
      

  6.   

    SELECT fid,name FROM  表1 as a
    left join
    (select id,name as fname from  表1 ) as b
    on a.fid=b.id where a.id=2得到结果只是:1 ,苹果没有显示出 “水果类” 怎么办???
      

  7.   


    结果:Unknown column 'b.name' in 'field list'
      

  8.   


    其实表还有很多字段,若换成:
    SELECT id,fid,name FROM  表1 as a
    left join
    表1 as b
    on a.fid=b.id where a.id=2报错:#1052 - Column 'id' in field list is ambiguous
      

  9.   

    用1楼的数据测试没有问题,注意字段名
    a.id or b.id