材料表A
rowid name parentid type
1 C10 0 1
2 C20 0 1
3 C10 1 1
4 C10细石 1 1
5 C20 2 1
6 C20细石 2 1
7 水泥 0 0
8 矿粉 0 0
9 煤灰 0 0生产表B
shengchanid cailiaoid fangliang
1 3 100
2 4 100
3 5 200
4 6 200消耗表C
xiaohaoid shengchanid cailiaoid xiaohaoshuliang
1 1 7 10
2 1 8 20
3 1 9 30
4 2 7 15
5 2 8 15
6 2 9 15
7 3 7 20
8 3 8 20
9 3 9 20
10 4 7 25
11 4 8 25
12 4 9 25
要求查询结果
产品name fangliang 消耗name 消耗shuliang
C10 200 水泥 25
C10 200 矿粉 35
C10 200 煤灰 45
C20 400 水泥 45
C20 400 矿粉 45
C20 400 煤灰 45sql
rowid name parentid type
1 C10 0 1
2 C20 0 1
3 C10 1 1
4 C10细石 1 1
5 C20 2 1
6 C20细石 2 1
7 水泥 0 0
8 矿粉 0 0
9 煤灰 0 0生产表B
shengchanid cailiaoid fangliang
1 3 100
2 4 100
3 5 200
4 6 200消耗表C
xiaohaoid shengchanid cailiaoid xiaohaoshuliang
1 1 7 10
2 1 8 20
3 1 9 30
4 2 7 15
5 2 8 15
6 2 9 15
7 3 7 20
8 3 8 20
9 3 9 20
10 4 7 25
11 4 8 25
12 4 9 25
要求查询结果
产品name fangliang 消耗name 消耗shuliang
C10 200 水泥 25
C10 200 矿粉 35
C10 200 煤灰 45
C20 400 水泥 45
C20 400 矿粉 45
C20 400 煤灰 45sql
MySQL中进行树状所有子节点的查询
在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但很遗憾,在MySQL的目前版本中还没有对应的功能。 在MySQL中如果是有限的层次,比如我们事先如果可以确定这个树的最大深度是4, 那么所有节点为根的树的深度均不会超过4,则我们可以直接通过left join 来实现。 但很多时候我们...