11.9 查找上一级引用

 

单表自连接后,仅查找记录的上一级引用。
在中国行政区划表中,查询各行政区的上级区域名称。

ID NAME PARENT_ID
1 China 0
11 Beijing 1
12 Tianjin 1
13 Hebei 1
1301 Shijiazhuang 13
1302 Tangshan 13

使用 P.nodes(F) 函数查找记录的上一级引用。

脚本:

A
1 =connect(“db”)
2 =A1.query@x(“select * from ChinaRegion”)
3 >A2.switch(PARENT_ID,A2:ID)
4 =A2.nodes(PARENT_ID)
5 =A4.new(ID,NAME,PARENT_ID.NAME:PARENT_NAME)

A1 连接数据库
A2 查询中国行政区划表
A3 将 PARENT_ID 外键映射到该 ID 所在的记录,实现自连接。
A4 使用 nodes 函数查找记录的上一级引用
A5 创建由序号、名称和上一级区域名称组成的序表。

运行结果:

A4:

ID NAME PARENT_ID
1 China (null)
11 Beijing [1,China,]
12 Tianjin [1,China,]
13 Hebei [1,China,]
1301 Shijiazhuang [13,Hebei,]
1302 Tangshan [13,Hebei,]
1303 Qinhuangdao [13,Hebei,]
130102 Changan District [1301,Shijiazhuang,]
130104 Qiaoxi District [1301,Shijiazhuang,]
130105 Xinhua District [1301,Shijiazhuang,]

A5:

ID NAME PARENT_NAME
1 China (null)
11 Beijing China
12 Tianjin China
13 Hebei China
1301 Shijiazhuang Hebei
1302 Tangshan Hebei
1303 Qinhuangdao Hebei
130102 Changan District Shijiazhuang
130104 Qiaoxi District Shijiazhuang
130105 Xinhua District Shijiazhuang