PostgreSQL LEFT JOIN 错误故障排除:区分大小写和列名称
使用 LEFT JOIN
执行 SQL 查询有时会导致令人沮丧的“列...不存在”错误。这通常源于引用列名的方式不一致。
这个示例突出了一个常见的陷阱:PostgreSQL 中的大小写敏感度。 main_sim
表包含一个名为 FK_Numbers_id
的外键列。 虽然表定义 (d main_sim
) 确认其存在,但查询失败,因为列名大小写不一致。 查询使用 FK_Numbers_id
(大写),而数据库将其存储为 fk_numbers_id
(小写)。
PostgreSQL 的大小写敏感性在这里至关重要。 如果使用双引号列名创建表(按照文档中的建议),则所有列名都严格区分大小写。 这意味着您必须在查询中使用确切的大小写 - 包括双引号。
解决方案:
更正后的查询使用双引号显式指定列名的大小写:
<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
成功执行。 请记住,在使用 PostgreSQL 时,一致且精确的大小写至关重要,特别是在处理双引号标识符时。
以上是为什么我的 PostgreSQL LEFT JOIN 失败并出现'列不存在”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!