7.21 计算笛卡尔积时采用左连接

 

两个表相互关联,计算叉积时使用左连接。
根据相互关联的社区人员表和年龄分段表,查询社区居民所处的年龄段。

Community:

ID Name Age
1 David 28
2 Daniel 15
3 Andrew 65
4 Rudy

Age:

Group Start End
Children 0 15
Youth 16 40
Middle 41 60
Old 61 100

使用 xjoin() 函数的 @1 选项计算叉积时使用左连接。

脚本:

A
1 =connect(“db”)
2 =A1.query(“select * from Community”)
3 =A1.query@x(“select * from Age”)
4 =xjoin@1(A2:Person; A3:Age, A3.Start<=Person.Age && A3.End>=Person.Age)
5 =A4.new(Person.ID:ID, Person.Name:Name, Person.Age:Age,Age.Group:Group)

A1 连接数据库
A2 查询社区表
A3 查询年龄表
A4 使用xjoin@1 ()函数计算叉积时使用左连接,同时选出年龄在相应的年龄区间的记录
A5 创建序表,返回每个居民所在年龄段

运行结果:

ID Name Age Group
1 David 28 Youth
2 Daniel 15 Children
3 Andrew 65 Old
4 Rudy (null) (null)