SQL嵌套查询的问题

表是这样的

IDTypeNameF_ID
1电脑0
2CPU1
3显卡1
4主板1
5蔬菜
6白菜5
7黑菜5

如何使用一条sql 将查出的数据

IDTypeNameF_IDF_Name
1电脑0
2CPU1电脑
3显卡1电脑

是不是可以把这个看成两张表来处理 第一张表是 select * from label1 where F_ID=0
然后 select * from label1 innerjoin(select * from label1 where F_ID=0) as label2 on label1.F_ID=label2.ID
where F_ID>0

假设表名为tt

SELECT
t1.ID,t1.TypeName,t1.F_ID,t2.TypeName as F_Name
from tt t1
left join tt t2
on t1.F_ID = t2.ID
where 1=1
and t1.ID <= 3

没有测试,把表名替换了执行一下看有无错误

select a.*, (select b.typename from b where b.id = a.f_id) F_Name
from b a
where a.id < 4;

img

select a.*,b.TypeName as F_NAME from Test1 a,Test1 b where a.F_ID=b.ID
union select *,'' F_NAME from Test1 where ISNULL(F_ID,'')='' OR F_ID=0