join()

阅读(2260) 标签: 多序列, 叉乘,

描述:

多序列连接。

语法:

join(Ai:Fi,xj,..;…)

备注:

将多个序列Ai按照关联字段/关联表达式xjx1相等的关系连接,产生以Fi,…为字段的序表,Fi赋值为Ai对应成员,引用原排列Ai中的记录,xj全省略时用Ai的主键。某个xj 省略时该项条件不必匹配。

不管是多少个排列之间关联,都是和A1中的x1相等判断,因此是一表对多表的关系。

选项:

@f

全连接,找不到匹配值时,则与null对应。

@1

左连接(注意:这里是数字1,不是字母l)。

@m

假定所有Ai针对xj,…有序,则用归并法计算。

@p

按位置连接,忽略xj参数。

@i

仅用于过滤A1,忽略Fi参数,与@f@1互斥。

@d

仅用于过滤A1,只保留找不到的,忽略Fi参数,与@f@1互斥。

参数:

Fi

结果序表的字段名。

Ai

被连接的序列或排列。

xj

连接字段/表达式。

返回值:

序表

示例:

 

A

 

1

=demo.query("select top 3 EID,NAME from EMPLOYEE").keys(EID)

2

=demo.query("select top 3 EID,NAME from FAMILY").keys(EID)

3

=join(A1:Employee,EID;A2:Familymembers,EID)

常规连接,不匹配的项丢弃,每个字段值都是ref字段,指向原序表的一条记录。

4

=join@f(A1:Employee,EID;A2:Familymembers,EID)

全连接,无匹配项的用null

5

=join@1(A1:Employee,EID;A2:Familymembers,EID)

左连接,以第一个序表为基准,无匹配项的用null

6

=join@m(A1:Employee,EID;A2:Familymembers,EID)

假定所有关联字段同序,用归并法计算;如果不同序则会出错。

7

=join@p(A1:Employee;A2:Familymembers)

8

=join(A1:Employee;A2:Familymembers)

 

9

=join(A1:Employee1;A2:Familymembers1)

 

10

=join(A8:Employee2;A9:Familymembers2)

11

=join@i(A1;A2)

过滤A1,保留找到的。

12

=join@d(A1;A2)

过滤A1,保留找不到的。

相关概念:

xjoin()