数据库数据
lbid lbname parid
----------- ------------------------------------- -----------
1 服装分类 0
2 男童装 1
3 女童装 1
7 测试一下 1
8 试试二级的 3
17 just test 1
要达到的效果
lbid parid lbname parent
----------- ----------- --------------- --------------
2 1 男童装 服装分类
3 1 女童装 服装分类
7 1 测试一下 服装分类
17 1 just test 服装分类
8 3 试试二级的 女童装
如果将初始表看成两个表来处理就非常简单了
SQL语句:
select a.lbid,a.parid,a.lbname,b.lbname as parent from fenlei a
left join fenlei b on a.parid=b.lbid
where a.parid<>0
order by a.parid
采用左连接可以把没有子类的项也取出来,用where a.lbid=b.parid就不行