提示:
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中“You can’t specify target table for update in FROM clause”错误解决方法 在MySQL数据库管理过程中,遇到SQL语法错误是家常便饭,其中一种较为常见的错误是“You can’t specify target table for ...
4.2 Logging On to the MySQL Database Server . . . . . . . . . . . . . . . 41 4.3 Creating New SQL Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.4 Creating Databases . . . . . . ...
登录时提示密码错误,安装的时候并没有更改密码,后来通过免密码登录的方式更改密码,输入update mysql.user set password=password(‘root’) where user=’root’时提示ERROR 1054 (42S22): Unknown column ...
Part III: Using MySQL Stored Programs in Applications Chapter 12. Using MySQL Stored Programs in Applications Section 12.1. The Pros and Cons of Stored Programs in Modern Applications Section ...
...
在MySQL中,当你尝试执行一个包含`GROUP BY`子句的查询时,可能会遇到"Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column"这样的错误。这个错误提示表明你的查询违反了`...
错误信息:`Unknown column 'tjsaleresu0_.isupdate' in 'field list'` 这个错误表明Hibernate尝试访问的数据库表中不存在名为`isupdate`的列。解决方法是检查Hibernate的映射文件(如.hbm.xml或使用注解的方式)...
最后,当遇到ORDER BY错误,错误信息提示"Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column...",这是由于SQL模式"only_full_group_by"的要求,该模式下,ORDER BY...
本文将深入探讨1000BASE-X和IEEE 802.3-2008 Clause 36中关于PCS的详细内容。 首先,我们要理解1000BASE-X的含义。"1000"代表1 Gbps的速率,"BASE"表示基带传输,"X"则意味着该标准采用了光纤或铜线介质的多种实现...
Delphi编译错误中文手册是Delphi程序员的重要参考资料,它详尽地解释了在使用Delphi编译器时可能会遇到的各种错误信息。这些错误信息帮助开发者理解并解决编译过程中的问题,确保代码的正确性和可执行性。下面将对...
《Clause 37 自协商原理详解》 在现代网络通信技术中,自协商(Auto-Negotiation)是一项关键功能,特别是在千兆以太网(Gigabit Ethernet, GE)环境中。Clause 37 自协商机制是IEEE 802.3标准的一部分,它允许网络...
在正常项目开发过程中,如果MySQL版本从5.6升级到5.7版本。作为DBA在考虑数据库版本升级带来的影响时,一般会有几个注意点...ERROR 1055 (42000): Expression #3 of XXXXXX list is not in GROUP BY clause and contain
### 汇编错误编号解释知识点 在汇编语言编程过程中,遇到各种错误是家常便饭。了解这些错误代码及其含义对排除故障至关重要。以下是对常见汇编错误编号及含义的详细介绍: #### 0. Block nesting error - **含义**...
1. SQL错误:在执行SQL语句时,可能会遇到`Unknown column 'fillMen' in 'field list'`这样的错误,这通常是因为在查询或更新数据库时引用了不存在的列名。 2. 重复列名:`Column 'fillMan' specified twice`表示在...
在MySQL数据库操作中,有时会遇到一个特定的错误:1093 - You can’t specify target table for update in FROM clause。这个错误通常发生在尝试在一个`UPDATE`语句的`FROM`子句中直接引用目标更新表时。MySQL不支持...
Table of Contents Introduction....................................................................................................13 Code Examples.........................................................
there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause.`。 解决这个问题的一种方法是将`lastUpdated`列从`TIMESTAMP`类型改为`DATETIME`类型,并创建一个触发器来实现...
资源分类:Python库 所属语言:Python 资源全名:clause-1.1.2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
在MySQL数据库中,"You can’t specify target table for update in FROM clause"是一个常见的错误提示,意味着在同一个SQL语句中,你不能直接在一个`UPDATE`或`DELETE`语句的`FROM`子句中引用你想要更新或删除的表...