有类别表kinds:kind_id类别id,kind_name类别名称,parent_kind_id父类别id
-- Create table
create table KINDS
(
KIND_ID NUMBER(38) not null,
KIND_NAME VARCHAR2(30) not null,
PARENT_KIND_ID NUMBER(38) not null
);
-- Create/Recreate primary, unique and foreign key constraints
alter table KINDS
add primary key (KIND_ID);
数据:
KIND_ID | KIND_NAME | PARENT_KIND_ID |
---|---|---|
1 | 服装 | 0 |
2 | 休闲装 | 1 |
3 | 运动装 | 1 |
4 | 工装 | 1 |
5 | T恤 | 2 |
6 | 361度 | 3 |
7 | 李宁 | 3 |
8 | 361度T恤 | 6 |
9 | 食品 | 0 |
10 | 饮料 | 9 |
11 | 饼干 | 9 |
12 | 可乐 | 10 |
13 | 矿泉水 | 10 |
14 | 夹心饼干 | 11 |
15 | 可口可乐 | 12 |
16 | 百事可乐 | 12 |
17 | 电器 | 0 |
18 | 冰箱 | 17 |
19 | 彩电 | 17 |
20 | 海尔冰箱 | 18 |
21 | 美的冰箱 | 18 |
22 | 康佳彩电 | 19 |
24 | TCL彩电 | 19 |
25 | 361男士T恤 | 8 |
27 | 男士T恤 | 5 |
28 | 女士T恤 | 5 |
29 | 17'液晶彩电 | 22 |
30 | 男工装 | 4 |
31 | 18'液晶彩电 | 22 |
现要查出父类别(假设要查出父类别等于1的)及其所有子类别的记录
select * from kinds
start with parent_kind_id=1
connect by parent_kind_id = prior kind_id
order by kind_id;
查询结果:
KIND_ID | KIND_NAME | PARENT_KIND_ID |
---|---|---|
2 | 休闲装 | 1 |
3 | 运动装 | 1 |
4 | 工装 | 1 |
5 | T恤 | 2 |
6 | 361度 | 3 |
7 | 李宁 | 3 |
8 | 361度T恤 | 6 |
25 | 361男士T恤 | 8 |
27 | 男士T恤 | 5 |
28 | 女士T恤 | 5 |
30 | 男工装 | 4 |