描述:
多序列连接。
join(Ai:Fi,xj,..;…)
备注:
将多个序列Ai按照关联字段/关联表达式xj和x1相等的关系连接,产生以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) |
|
相关概念: