ch.join()

阅读(648) 标签: 管道, 排列, 外键式连接,

描述:

管道与排列外键式连接

语法:

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中的数据推送到管道A3A4A5A6,此时数据不会立即被推送到管道。

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()