页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

(本文档仅供参考)

...

问题说明

          目前有用户用v3版本,比如有三个表,A、B、C,A做主表,其他两个表左连接A,现在升级到v8后,有一个变成右连接了,查看SQL,本来是B表在上面,现在是C在上面了。找不到下面定义表的字段导致报错,要如何解决?

...

 目前有用户用V3版本,比如有三个表,A、B、C,A做主表,其他两个表左连接A,现在升级到v8后,有一个变成右连接了,查看SQL,本来是B表在上面,现在是C在上面了。找不到下面定义表的字段导致报错,要如何解决?

问题原因 

         原因:v V3版本生成的SQL虽然看着表之间的关联关系是正常的,但实际表之间是左连接还是右连接在V8以下的版本是随机生成的,但有些数据库是依赖表之间的顺序来自动生成对应的表关系的,可以说本质上表关联关系中的设置其实是没有用的,实际SQL里边的表关联关系有时候是生成左关联有时候生成右关联。为了保证顺序的正确性,在V8版本优化了表之间的关联关系,我们默认是按照数据源的排序设置SQL中是左关联效果还是右关联效果。

解决方案

           参考解决方案: 依据于用户想要生成的SQL效果对数据源下的表进行排序,如果是跨schema,则先按照schema的顺序,然后再到表的顺序。比如说如果是A->B->C,这样的顺序应该是ABC,如果是A->B,A->C,顺序应该A在最上面,B和C的顺序依据于用户希望输出的SQL效果来对表进行排序。

        

        


Viewtracker