MSSQL系列之五无限极分类的解决办法

--自身连接:自连接
a:相当于员工表     b:相当于上级表
id  name ShangJiId    id  name ShangJiId
1  张三 0      1  张三 0
2  杨广 0      2  杨广 0
3  孙中 0      3  孙中 0
4  牛锛 1      4  牛锛 1
5  石磊 2      5  石磊 2
--
select a.id,a.name,a.ShangJiId,b.name as '上级名'
from emp as a left join emp b
on a.ShangJiId=b.Id
--他查的是有上级的小兵(中兵)
select a.id,a.name,a.ShangJiId,b.name as '上级名'
from emp as a inner join emp b
on a.ShangJiId=b.Id

Create table emp
(
 id tinyint,       --员工编号
 name varchar(8),
 ShangJiId tinyint --上级的编号
)
insert emp values(5,'石磊',2)
select * from emp
select a.*,b.name
from emp a left join emp b on a.ShangJiId = b.id


--借花献佛 面试题
假如说,现在我们公司要做一个系统,系统针对部门进行分级,
有1级部门,2级部门,3级部门,4级部门,5级部门,6级部门,7级部门
怎么设计表???让咱学生用迭代的方式,来设计表...

UPS:美国快递(和EMS差不多), 美国分部/亚太分部/欧美分部
亚太分部:大中国区/港台地区/新加坡/...
大中国区:飞机快递/轮船快递/

id 下级部门 上级部门id
3   飞机快递   2
2   大中国区   1
9   给老鼠快递  8

你可能感兴趣的:(JOIN,面试,table,insert)