cs.join()

阅读(451) 标签: 游标, 排列, 外键式连接,

描述:

游标与排列外键式连接

语法:

cs.join(C:.,T:K,x:F,…; …;…)

备注:

用游标cs中的字段C,匹配T的键找到相应记录,在cs上拼接T中的表达式x作为字段F添加到cs上,返回原游标。K只能省略或是#K省略时用T的键,用#时表示用序号,支持多路游标

选项:

@i

匹配不上的外键删除整条记录,缺省将填成null

@o(F;)

原记录整个作为字段F生成新记录,x可以是~,表示T的整条记录

@d

当参数x:F省略时,删除匹配上外键的整条记录,只做针对cs的过滤操作。

参数:

cs

游标/多路游标

C

游标cs的外键,多个时以冒号隔开

T

序表/排列/集群内表

K

T的键

x

T的字段表达式

F

表达式x的字段名

返回值:

原游标cs

示例:

 

A

 

1

=demo.cursor("select EID,NAME,DEPT,SALARY from

EMPLOYEE where EID<10 order by  EID" )

返回取数游标,数据内容如下:

2

=demo.query("select * from PERFORMANCE order by  EMPLOYEEID").keys(EMPLOYEEID)

返回序表:

3

=A1.join(EID,A2, BONUS+1:SALARY1)

常规连接,匹配不上的外键的用null

4

=A3.fetch()

5

=demo.cursor("select EID,NAME,DEPT,SALARY from EMPLOYEE where EID<10 order by  EID" )

A1

6

=demo.query("select * from PERFORMANCE order by  EMPLOYEEID").keys(EMPLOYEEID)

A2

7

=A5.join@i(EID,A6, BONUS+1:SALARY1)

匹配不上的外键删除整条记录

8

=A7.fetch()

9

=demo.cursor("select EID,NAME,DEPT,SALARY from EMPLOYEE where EID<10 order by  EID" )

A1

10

=demo.query("select * from PERFORMANCE order by  EMPLOYEEID").keys(EMPLOYEEID)

A2

11

=A9.join@i(EID,A10: #1, #3+1:SALARY1)

#1表示第1个字段,#3表示第3个字段

12

=A11.fetch()

结果同A8

13

=demo.cursor("select EID,NAME,DEPT,SALARY from EMPLOYEE where EID<10 order by  EID" )

A1

14

=demo.query("select * from PERFORMANCE order by  EMPLOYEEID").keys(EMPLOYEEID)

A2

15

=A13.join@o(F1;EID,A14,BONUS+1:SALARY1)

原记录整个作为字段F1

16

=A15.fetch()

17

=demo.cursor("select EID,NAME,DEPT,SALARY from EMPLOYEE where EID<10 order by  EID" )

A1

18

=demo.query("select * from PERFORMANCE order by  EMPLOYEEID").keys(EMPLOYEEID)

A2

19

=A17.join@o(F1;EID,A18,~:SALARY1)

使用~代替x参数

20

=A19.fetch()

21

=file("D:\\test7.ctx")

 

22

=A21.create(#EMPLOYEEID,EVALUATION,BONUS;EMPLOYEEID

创建组表

23

=A22.attach(table3,#EMPLOYEEID,EVALUATION,BONUS)

增加附表

24

=demo.cursor("select * from PERFORMANCE")

附加记录

25

=A23.append(A24)

附加记录

26

=demo.cursor("select EID,NAME,DEPT,SALARY from EMPLOYEE where EID<10 order by  EID" )

 

27

=demo.query("select * from PERFORMANCE order by  EMPLOYEEID")

 

28

=file@n("D:/test.ctx","169.254.121.62:8281")

打开复写文件

29

=A28.create()

创建复写类型集群组表

30

=A29.attach(table3)

取出集群附表table3

31

=A30.memory()

生成集群内表

32

=A31.cursor()

 

33

=A32.join(EID,A27:EMPLOYEEID, BONUS+1:SALARY1).fetch()

 

返回游标,结果如下:

相关概念:

join()