下面的数据是两列
ID name
---------- ----------
1 食品和饮料
11 初级品
111 主要用于工业
112 主要用于家庭消费
12 加工品
121 主要用于工业
122 主要用于家庭消费
2 未列名的工业供应品
21 初级品
22 加工品
3 燃料和润滑油
32 加工品
322 其他
4 资本货品(运输设备除外)及其零件和附件
41 资本货品(运输设备除外)
42 零件和附件
5 运输设备及其零件和附件
52 其他
522 非工业用
53 零件和附件
6 未列名的消费品
61 耐用品
62 半耐用品
63 非耐用品
我想回推如何设置数据表(可设置多个表,有主外键关系即可)才能更快更好地用select 查询语句得出上面的结果1 食品和饮料
11 初级品
111 主要用于工业
112 主要用于家庭消费
12 加工品
121 主要用于工业
122 主要用于家庭消费
2 未列名的工业供应品
21 初级品
22 加工品
ID name
---------- ----------
1 食品和饮料
11 初级品
111 主要用于工业
112 主要用于家庭消费
12 加工品
121 主要用于工业
122 主要用于家庭消费
2 未列名的工业供应品
21 初级品
22 加工品
3 燃料和润滑油
32 加工品
322 其他
4 资本货品(运输设备除外)及其零件和附件
41 资本货品(运输设备除外)
42 零件和附件
5 运输设备及其零件和附件
52 其他
522 非工业用
53 零件和附件
6 未列名的消费品
61 耐用品
62 半耐用品
63 非耐用品
我想回推如何设置数据表(可设置多个表,有主外键关系即可)才能更快更好地用select 查询语句得出上面的结果1 食品和饮料
11 初级品
111 主要用于工业
112 主要用于家庭消费
12 加工品
121 主要用于工业
122 主要用于家庭消费
2 未列名的工业供应品
21 初级品
22 加工品
ID varchar(3),name varchar(50)
insert into tb values('1', '食品和饮料')
insert into tb values('11', '初级品')
insert into tb values('111', '主要用于工业')
insert into tb values('112', '主要用于家庭消费')
insert into tb values('12', '加工品')
insert into tb values('121', '主要用于工业')
insert into tb values('122', '主要用于家庭消费')
insert into tb values('2', '未列名的工业供应品')
insert into tb values('21', '初级品')
insert into tb values('22', '加工品')
insert into tb values('3', '燃料和润滑油')
insert into tb values('32', '加工品')
insert into tb values('322', '其他')
insert into tb values('4', '资本货品(运输设备除外)及其零件和附件')
insert into tb values('41', '资本货品(运输设备除外)')
insert into tb values('42', '零件和附件')
insert into tb values('5', '运输设备及其零件和附件')
insert into tb values('52', '其他')
insert into tb values('522', '非工业用')
insert into tb values('53', '零件和附件')
insert into tb values('6', '未列名的消费品')
insert into tb values('61', '耐用品')
insert into tb values('62', '半耐用品')
insert into tb values('63', '非耐用品')
goselect id =
case len(id) when 1 then id
when 2 then ' ' + id
when 3 then ' ' + id
end,
name =
case len(id) when 1 then name
when 2 then ' ' + name
when 3 then ' ' + name
end
from tb
drop table tb/*
id name
------- ------------------------------------------------------
1 食品和饮料
11 初级品
111 主要用于工业
112 主要用于家庭消费
12 加工品
121 主要用于工业
122 主要用于家庭消费
2 未列名的工业供应品
21 初级品
22 加工品
3 燃料和润滑油
32 加工品
322 其他
4 资本货品(运输设备除外)及其零件和附件
41 资本货品(运输设备除外)
42 零件和附件
5 运输设备及其零件和附件
52 其他
522 非工业用
53 零件和附件
6 未列名的消费品
61 耐用品
62 半耐用品
63 非耐用品(所影响的行数为 24 行)
*/
如果层数固定且不多,最好的办法是有几层用各个字段+1个id,上级直接列在字段中;如果每层的数据较多最分成多表也是可以的(如下关联)
如果层数不定或多层,最好用三个字段,1id,1名称,1父id,不过查询会复杂
如果层数固定且不多,最好的办法是有几层用各个字段+1个id,上级直接列在字段中;如果每层的数据较多最分成多表也是可以的(如下关联)
如果层数不定或多层,最好用三个字段,1id,1名称,1父id,不过查询会复杂
——————————————————————————————
是个好办法