开发者社区> 问答> 正文

join...on...语句解析可能有BUG,请确认

druid:1.1.8 String sql = "select t1.teacher_id from teacher_1 t1 left join teacher_2 t2 on t1.teacher_id"; System.out.println(WallUtils.isValidateMySql(sql)); // true System.out.println(WallUtils.isValidatePostgres(sql)); // true

存在的问题: sql中的on条件只写了一半,理论上是条无法执行的sql,但是被认为是正确的sql,并且用SchemaStatVisitor可以正常解析出表和字段而不会抛出异常。

原提问者GitHub用户dingqianlong

展开
收起
山海行 2023-07-05 20:16:34 23 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    可能是由于以下原因之一:

    语法错误:在使用JOIN和ON时,您需要确保语法正确。例如,以下是一个正确的JOIN和ON语句示例:

    sql
    Copy
    SELECT *
    FROM table1
    JOIN table2
    ON table1.id = table2.id;
    在这个示例中,我们使用JOIN关键字将table1和table2连接起来,并使用ON关键字指定连接条件为table1.id = table2.id。

    表名或列名错误:在使用JOIN和ON时,您需要确保使用的表名和列名是正确的。如果表名或列名错误,可能会导致连接失败。请确保您使用正确的表名和列名。

    连接条件不正确:在使用ON时,您需要确保连接条件是正确的。如果连接条件不正确,可能会导致连接失败或返回错误的结果。请确保您使用正确的连接条件。

    2023-07-30 14:35:08
    赞同 展开评论 打赏
  • 问题已修复,请用新版本 https://github.com/alibaba/druid/releases/tag/1.1.14

    原回答者GitHub用户wenshao

    2023-07-06 11:18:44
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
神龙云服务器产品及技术深度解析 立即下载
弹性创造价值:基于ECS的最佳性价比实践解析 立即下载
又快又稳:阿里云下一代虚拟交换机解析 立即下载

相关镜像