MySQL 1054错误 Unknown column .... in 'on clause'

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

 

缘由:mysql

 

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

 

:spa

 

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 下执行则会出错。blog

 

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

 

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的出错it

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

则会生成class

 

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下就不会出错了。stream

相关文章
相关标签/搜索