TSL语言基础 > SQL基础到TS-SQL > TS-SQL入门 > select查询语句 > join处理多表联接查询

With On实现Join On的优化    

  • 在联接的时候,如果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的语法可以把笛卡尔积的计算复杂度降低到线性复杂度(参与运算的两个表的大小之和)。