2
我有一个表格描述了一个地理结构,这是一个树状结构,其中column1是'国家',第2列包含最大的行政所谓的 'REGION1',然后 '区域2' 列区域包含REGION1等孩子从一个树结构表,如何选择分支,然后分区更多信息为每个分支
所以这
r
/ | \
1 2 3
/ | \ / | \ / | \
11 12 13 21 22 23 31 32 33
是represesented像这样为每个不同的组合:
cntry| r1 | r2
------------------
r | 1 | 11
r | 1 | 12
r | 1 | 13
r | 2 | 21
r | 2 | 22
r | 2 | 23
r | 3 | 31
r | 3 | 32
r | 3 | 33
此外,每个叶节点还包含一些其他信息,这些信息可以跨越多行。如邮政编码。所以表实际上看起来是这样的:
cntry| r1 | r2 | zip |
--------------------------|
r | 1 | 11 | a |
r | 1 | 11 | aa |
r | 1 | 11 | aaa |
r | 1 | 11 | aaaa|
r | 1 | 12 | b |
r | 1 | 13 | c |
r | 1 | 13 | cc |
r | 1 | 13 | ccc |
r | 2 | 21 | d |
r | 2 | 22 | e |
r | 2 | 22 | ee |
r | 2 | 23 | f |
r | 3 | 31 | g |
r | 3 | 31 | gg |
r | 3 | 31 | ggg |
r | 3 | 32 | h |
r | 3 | 33 | i |
现在,真正的表包含近两百万行,有很多在列文的地名。这是附加行中的许多重复信息,其中只有邮政编码是新信息。它占用带宽,速度很慢。
是否有可能进行查询,以明确和有序地选择cntry,r1,r2,但在其他列中的每个不同行后面跟着zip行?所以选择的结果是这样的:
cntry| r1 | r2 | zip |
--------------------------|
r | 1 | 11 | a |
NULL| NULL | NULL | aa |
NULL| NULL | NULL | aaa |
NULL| NULL | NULL | aaaa|
r | 1 | 12 | b |
r | 1 | 13 | c |
NULL| NULL | NULL | cc |
NULL| NULL | NULL | ccc |
r | 2 | 21 | d |
r | 2 | 22 | e |
NULL| NULL | NULL | ee |
r | 2 | 23 | f |
r | 3 | 31 | g |
NULL| NULL | NULL | gg |
NULL| NULL | NULL | ggg |
r | 3 | 32 | h |
r | 3 | 33 | i |