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
… … …