描述:
管道与排列外键式连接
语法:
ch.join(C:.,T:K,x:F,…; …;…)
备注:
用管道ch中的字段C,…匹配序表/排列T的键找到相应记录,在ch上拼接T中的表达式x作为字段F添加到ch上形成管道。K只能省略或是#,K省略时用T的键,用#时表示用序号。
该函数属于附加计算动作。
选项:
@i |
匹配不上的外键删除整条记录,缺省将填成null |
@o(F;…) |
原记录整个作为字段F生成新记录,x可以是~ |
参数:
ch |
管道 |
C |
管道ch的外键,多个时以冒号隔开 |
T |
序表/排列 |
K |
T的键 |
x |
T的字段表达式 |
F |
表达式x的字段名 |
返回值:
管道
示例:
|
A |
|
1 |
=demo.cursor("select EID,NAME,SALARY from EMPLOYEE order by EID" ) |
|
2 |
=demo.query("select * from PERFORMANCE order by EMPLOYEEID").keys(EMPLOYEEID) |
|
3 |
=channel() |
创建管道 |
4 |
=channel() |
|
5 |
=channel() |
|
6 |
=channel() |
|
7 |
=A1.push(A3,A4,A5,A6) |
将游标A1中的数据推送到管道A3、A4、A5和A6,此时数据不会立即被推送到管道。 |
8 |
=A3.join(EID,A2, BONUS+1:SALARY1) |
常规连接,匹配不上的外键的用null |
9 |
=A8.fetch() |
保留管道当前数据 |
10 |
=A4.join@i(EID,A2: #1, #3+1:SALARY1) |
#1表示第1个字段,#3表示第3个字段 |
11 |
=A10.fetch() |
|
12 |
=A5.join@i(EID,A2, BONUS+1:SALARY1) |
匹配不上的外键删除整条记录 |
13 |
=A12.fetch() |
|
14 |
=A6.join@o(F1;EID,A2,~.BONUS+1:SALARY1) |
原记录整个作为字段F1 |
15 |
=A14.fetch() |
|
16 |
=A1.fetch() |
|
17 |
=A3.result() |
|
18 |
=A4.result() |
|
19 |
=A5.result() |
结果同A18 |
20 |
=A6.result() |
|