MySQL 1054错误 Unknown column .... in 'on clause'
2017-03-28 14:19
344 查看
提示:
ERROR 1054 (42S22): Unknown column ... in 'on clause'
原因:
MySQL5.0 Bug, 要把联合的表用括号包含起来才行:
例:
Sql代码
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代码
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代码
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下就不会出错了。
以上文章了来自网络。
ERROR 1054 (42S22): Unknown column ... in 'on clause'
原因:
MySQL5.0 Bug, 要把联合的表用括号包含起来才行:
例:
Sql代码
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代码
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代码
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下就不会出错了。
以上文章了来自网络。
相关文章推荐
- MySQL 1054错误 Unknown column .... in 'on clause'
- [Err] 1054 - Unknown column 'tsd.n_acco_id' in 'on clause'
- mysql下出现Unknown column 'id' in 'on clause'的解决方法
- mysql5.5升级为5.7遇到错误ERROR 1054 (42S22): Unknown column 'password_last_changed' in 'mysql.user'
- 【mysql】ERROR 1054 (42S22): Unknown column '‘root‘' in 'where clause'
- Mysql错误:#1054 - Unknown column 'money' in 'field list' 解决办法
- mysql5.5升级为5.7遇到错误ERROR 1054 (42S22): Unknown column 'password_last_changed' in 'mysql.user'
- Mysql报错[Err] 1054 - Unknown column 'b.borrow_id' in 'on clause'
- Mysql报错[Err] 1054 - Unknown column 'b.borrow_id' in 'on clause'
- MYSQL 1054 - Unknown column 'point_type' in 'field list'
- MySQL 5.7.16 修改密码提示 ERROR 1054 (42S22): Unknown column ''password'' in ''field list''的原因
- MySQL 1054错误 Unknown column .... in 'on clause'
- Hibernate操作MySQL使用reserved word引发错误: “You have an error in your SQL syntax; check the manual that co
- mysql下binlog日志恢复错误解决ERROR: Error in Log_event::read_log_event()
- 用web 打开phpMyAdmin时出现错误#2002 Cannot log in to the MySQL server
- Hibernate操作MySQL使用reserved word引发错误: “You have an error in your SQL syntax; check the manual that co
- MySQL "You can't specify target table 'X' for update in FROM clause" 错误解决方法
- mysql中You can't specify target table for update in FROM clause错误
- 关于Unable to Obtain Table Information in Enterprise Architect - MySQL错误的解决
- MySQL 编译出现 error: 'SSL_OP_NO_COMPRESSION' undeclared (first use in this function) 错误