zoukankan      html  css  js  c++  java
  • MySQL 1054错误 Unknown column .... in 'on clause'

    ERROR 1054 (42S22): Unknown column ... in 'on clause'

     

    原因:

     

    MySQL5.0 Bug, 要把联合的表用括号包含起来才行:

     

    :

     

    Sql代码  收藏代码
    1. SELECT (c.id, a.id, b.id) FROM A a, B b LEFT JOIN C c ON c.a_id = a.a_id AND c.b_id = b.b_id  

    这句话执行应该是没有错误的,但是Mysql 5 下执行则会出错。

     

    因为mysql下有这样一个BUG,要把联合的表用括号包含起来才行:

     

    Sql代码  收藏代码
    1. SELECT (c.id, a.id, b.id) FROM (A a, B b) LEFT JOIN C c ON c.a_id = a.a_id AND c.b_id = b.b_id  

    但是HQL生成就是这样的语句,怎么办呢?我们可以改变HQL的写法来达成生成另一种SQL语句,以避免这种BUG的出错

    把select (c.id, a.id, b.id) from C c Left join c.a a Left join c.b b

    则会生成

     

    Sql代码  收藏代码
    1. SELECT (c.id, a.id, b.id) FROM A a LEFT JOIN B b LEFT JOIN C c ON c.a_id = a.a_id AND c.b_id = b.b_id  

     

    这样的话mysql下就不会出错了。

  • 相关阅读:
    第二章.md
    第四章.md
    第一章.md
    第九章.md
    png简析.md
    第五章.md
    好看的粒子效果
    缓动 减速运动
    收集的小效果
    粒子效果2
  • 原文地址:https://www.cnblogs.com/wang3680/p/4461276.html
Copyright © 2011-2022 走看看