create table catalog
(
id int identity(1,1) primary key,
name varchar(20) not null,
superId int , –上级id
remark varchar(50)
)
go
insert into catalog values(‘所有类别’,0,’所有类别’)
insert into catalog values(‘酒类’,1,’酒类’)
insert into catalog values(‘饮料类’,1,’饮料类’)
insert into catalog values(‘食品类’,1,’食品类’)
insert into catalog values(‘白酒’,2,’白酒’)
insert into catalog values(‘啤酒’,2,’啤酒’)
insert into catalog values(‘冷冻食品’,4,’冷冻食品’)
insert into catalog values(‘速热食品’,4,’速热食品’)
insert into catalog values(‘即食食品’,4,’即食食品’)
–所有类别(1)
—–酒类(2)
——–白酒(5)
——–啤酒(6)
—–饮料类(3)
—–食品类(4)
——–冷冻食品(7)
——–速热食品(8)
——–即食食品(9)
go
select a.name as ‘父类’,b.name as ‘子类’ from catalog a right join catalog b on a.id=b.superId
查询结果
上级名称 名称
NULL 所有类别
所有类别 酒类
所有类别 饮料类
所有类别 食品类
酒类 白酒
酒类 啤酒
食品类 冷冻食品
食品类 速热食品