在联接的时候,如果on的条件是一个或者多个等式约束的与,在这种时候,Join的本身可以被优化,TS-SQL为这种类型的优化提供了新的语法。上边的Join范例代码可以写成:
R:=select [1].*,[2].["英语成绩"] from A join B with ([1].["学号"] on [2].["学号"]) end;
假如有多个等式约束,假定除了学号以外,还有一个班级号字段,联接的时候需要使用班级号和学号一起来作为联接的条件,上述的代码可以这么写:
R:=select [1].*,[2].["英语成绩"] from A join B with ([1].["学号"],[1].["班级"] on [2].["学号"],[2].["班级"]) end;
通过上述范例,with on的语法定义为:
with(等式左表达式组 on 等式右表达式组)
左右表达式组中的多个表达式用逗号“,”分隔。
采用这种with on的语法可以把笛卡尔积的计算复杂度降低到线性复杂度(参与运算的两个表的大小之和)。