a表
id parentid name
1 null 总公司
2 1 南京公司
3 2 无锡分公司
4 2 苏州分公司
5 4 昆山分公司
6 4 工业园区分公司
7 1 广西公司
8 7 桂柳分公司
9 8 柳州分公司
10 8 桂林分公司
11 7 梧洲分公司
B 表
ID JINE
3 100,000
5 150,000
6 75,000
9 64,000
10 21,000
10 34,000
11 16,000
11 23,000只有A表中的树页(也就是再没有下节点的公司才会在B中有记录).但是要求在B中按照每个公司进行查询.例如选择梧洲就出现他本身的.选择桂柳分公司就出现桂林和柳州的所有记录,选择广西就出现桂林,柳州,梧洲的所有记录.选择总公司就要查询到所有的记录.
id parentid name
1 null 总公司
2 1 南京公司
3 2 无锡分公司
4 2 苏州分公司
5 4 昆山分公司
6 4 工业园区分公司
7 1 广西公司
8 7 桂柳分公司
9 8 柳州分公司
10 8 桂林分公司
11 7 梧洲分公司
B 表
ID JINE
3 100,000
5 150,000
6 75,000
9 64,000
10 21,000
10 34,000
11 16,000
11 23,000只有A表中的树页(也就是再没有下节点的公司才会在B中有记录).但是要求在B中按照每个公司进行查询.例如选择梧洲就出现他本身的.选择桂柳分公司就出现桂林和柳州的所有记录,选择广西就出现桂林,柳州,梧洲的所有记录.选择总公司就要查询到所有的记录.
SELECT JINE FROM B WHERE b.id IN
(
SELECT a.id FROM a WHERE parentid IN (SELECT id FROM a WHERE name='昆山分公司')
)
--name=@name
a表
id parentid name
1 0 总公司
2 10 南京公司
3 1010 无锡分公司
4 1011 苏州分公司
5 101110 昆山分公司
6 101111 工业园区分公司
7 11 广西公司
8 1110 桂柳分公司
9 111010 柳州分公司
10 111011 桂林分公司
11 111012 梧洲分公司查询总公司:
select * form b
查询南京公司
select * from b where left(id,2)='10'
查询苏州分公司
select * from b where left(id,4)='1011'
查询昆山分公司
select * from b where id='101110'