`

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

阅读更多

提示:

 

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

 

原因:

 

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

 

:

 

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,要把联合的表用括号包含起来才行:

 

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

则会生成

 

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错误解决方法.docx

    ### MySQL中“You can’t specify target table for update in FROM clause”错误解决方法 在MySQL数据库管理过程中,遇到SQL语法错误是家常便饭,其中一种较为常见的错误是“You can’t specify target table for ...

    Sql for mysql

    4.2 Logging On to the MySQL Database Server . . . . . . . . . . . . . . . 41 4.3 Creating New SQL Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.4 Creating Databases . . . . . . ...

    MySQL5.7更改密码时出现ERROR 1054 (42S22)的解决方法

    登录时提示密码错误,安装的时候并没有更改密码,后来通过免密码登录的方式更改密码,输入update mysql.user set password=password(‘root’) where user=’root’时提示ERROR 1054 (42S22): Unknown column ...

    MySql存储过程编程.chm

    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中You can’t specify target table for update in FROM clause错误解决方法.pdf

    ...

    mysql遇到Expression.docx

    在MySQL中,当你尝试执行一个包含`GROUP BY`子句的查询时,可能会遇到"Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column"这样的错误。这个错误提示表明你的查询违反了`...

    Hibernate几个常见错误解决方式

    错误信息:`Unknown column 'tjsaleresu0_.isupdate' in 'field list'` 这个错误表明Hibernate尝试访问的数据库表中不存在名为`isupdate`的列。解决方法是检查Hibernate的映射文件(如.hbm.xml或使用注解的方式)...

    MYSQL数据查询技巧.pdf

    最后,当遇到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 - Physical Coding Sublayer (PCS)

    本文将深入探讨1000BASE-X和IEEE 802.3-2008 Clause 36中关于PCS的详细内容。 首先,我们要理解1000BASE-X的含义。"1000"代表1 Gbps的速率,"BASE"表示基带传输,"X"则意味着该标准采用了光纤或铜线介质的多种实现...

    Clause_37_Auto-Negotiation.pdf

    《Clause 37 自协商原理详解》 在现代网络通信技术中,自协商(Auto-Negotiation)是一项关键功能,特别是在千兆以太网(Gigabit Ethernet, GE)环境中。Clause 37 自协商机制是IEEE 802.3标准的一部分,它允许网络...

    Delphi编译错误中文手册.doc

    Delphi编译错误中文手册是Delphi程序员的重要参考资料,它详尽地解释了在使用Delphi编译器时可能会遇到的各种错误信息。这些错误信息帮助开发者理解并解决编译过程中的问题,确保代码的正确性和可执行性。下面将对...

    MySQL5.7中的sql_mode默认值带来的坑及解决方法

    在正常项目开发过程中,如果MySQL版本从5.6升级到5.7版本。作为DBA在考虑数据库版本升级带来的影响时,一般会有几个注意点...ERROR 1055 (42000): Expression #3 of XXXXXX list is not in GROUP BY clause and contain

    汇编错误编号解释.txt

    ### 汇编错误编号解释知识点 在汇编语言编程过程中,遇到各种错误是家常便饭。了解这些错误代码及其含义对排除故障至关重要。以下是对常见汇编错误编号及含义的详细介绍: #### 0. Block nesting error - **含义**...

    java中常见的错误.docx

    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的解决方法

    在MySQL数据库操作中,有时会遇到一个特定的错误:1093 - You can’t specify target table for update in FROM clause。这个错误通常发生在尝试在一个`UPDATE`语句的`FROM`子句中直接引用目标更新表时。MySQL不支持...

    Doctrine ORM for PHP.pdf

    Table of Contents Introduction....................................................................................................13 Code Examples.........................................................

    MySQL错误TIMESTAMP column with CURRENT_TIMESTAMP的解决方法

    there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause.`。 解决这个问题的一种方法是将`lastUpdated`列从`TIMESTAMP`类型改为`DATETIME`类型,并创建一个触发器来实现...

    Python库 | clause-1.1.2.tar.gz

    资源分类: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错误解决方法

    在MySQL数据库中,"You can’t specify target table for update in FROM clause"是一个常见的错误提示,意味着在同一个SQL语句中,你不能直接在一个`UPDATE`或`DELETE`语句的`FROM`子句中引用你想要更新或删除的表...

Global site tag (gtag.js) - Google Analytics