ホームページ >データベース >mysql チュートリアル >PostgreSQL の LEFT JOIN が「列が存在しません」エラーで失敗するのはなぜですか?

PostgreSQL の LEFT JOIN が「列が存在しません」エラーで失敗するのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-13 09:08:43312ブラウズ

Why Does My PostgreSQL LEFT JOIN Fail with a

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>
この変更により、正しい列が参照されるようになり、「列が存在しません」エラーが解決され、

が正常に実行できるようになります。 PostgreSQL を使用するとき、特に二重引用符で囲まれた識別子を扱うときは、大文字と小文字を一貫して正確に扱うことが不可欠であることに注意してください。LEFT JOIN

以上がPostgreSQL の LEFT JOIN が「列が存在しません」エラーで失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。