首页 > 数据库 > mysql教程 > 为什么即使列存在,我的 SQL 查询也会失败并出现'列不存在”错误?

为什么即使列存在,我的 SQL 查询也会失败并出现'列不存在”错误?

Linda Hamilton
发布: 2025-01-13 08:11:42
原创
121 人浏览过

Why Does My SQL Query Fail with a

SQL 查询错误“列不存在”的排查

执行 SQL 查询时,可能会遇到“列不存在”的错误。当该列似乎存在于表的定义中时,这尤其令人费解。

示例场景

考虑以下查询:

<code class="language-sql">select sim.id as idsim, 
       num.id as idnum 
from main_sim sim 
  left join main_number num on (FK_Numbers_id=num.id);</code>
登录后复制

此查询尝试根据 FK_Numbers_id 外键关系从两个表 main_sim 和 main_number 中检索数据。但是,执行查询时,会收到以下错误:

<code>ERROR:  column "fk_numbers_id" does not exist</code>
登录后复制

解决方案

使用命令 d main_sim 检查表定义后,您会注意到该列存在,名为 FK_Numbers_id,而不是查询中指定的 fk_numbers_id。

<code class="language-sql">dbMobile=# \d main_sim

...
FK_Numbers_id   | integer               | </code>
登录后复制

解释

在这种情况下,由于表定义使用双引号,因此列名称区分大小写。因此,查询中的列引用也必须使用双引号才能与列名称的精确大小写匹配。

更正后的查询

要解决此问题,请修改查询如下:

<code class="language-sql">select sim.id as idsim, 
       num.id as idnum 
from main_sim sim 
  left join main_number num on ("FK_Numbers_id" = num.id);</code>
登录后复制

此更正后的查询在 LEFT JOIN 子句中使用双引号括起列名,确保与表定义正确匹配。通过调整列引用以匹配列名称的精确大小写,查询现在将成功执行。

以上是为什么即使列存在,我的 SQL 查询也会失败并出现'列不存在”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板