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

多表Join(超过两个结果集的Join)    

  •   如果有三个表,假定还有一个语文成绩表C,我们要合并学号,英语成绩,语文成绩,如何做呢?
      我们看一个范例大家自己来理解:
      R:=select [1].*,[2].["英语成绩"],[3].["语文成绩"] from A join B on [1].["学号"]=[2].["学号"] join C on [1].["学号"]=[3].["学号"] end;
      我们可以认为join后的结果集形成了一个新的结果集,这个结果集还可以继续和其他的结果集继续进行联接,用这种方式可以实现几乎任意多张表的联接。
      读者必须了解到,join的计算复杂度很大(使用with on可以降低),许多张表的join也会大大降低代码的可读性,所以在使用join带来的便利的时候,当遇到性能问题的时候,我们可以考虑利用数组的优势来解决性能问题。
      例:
      B,C结果集我们可以先构造出B1和C1的结果集,B1的结果集和C1的结果是以学号为下标值为分数的数组,然后对A结果集进行循环直接利用学号访问B1,C1结果集的值即可。