別の表の id を並べて同名になる例

2 つの表から同じ名前の列 id を選ぶと、出力列が同名になります。サブクエリや CTE として使うと曖昧になる典型的な落とし穴を、警告で確かめます。

入力

SQL

SELECT a.id, b.id FROM a JOIN b ON a.id = b.a_id

結果

エラー 0 件・警告 1 件・情報 0 件

指摘(エラー・警告・情報)

  • 警告 1 行目 出力列名 id が 2 個あります(1 番目・2 番目)。サブクエリや CTE として参照すると、どの列か曖昧になるため、AS で別の名前を付けてください。
出力列の数2 列
同名の出力列の組1 組
名前を判定できなかった列0 列

出力列の一覧

出力列の一覧
#式出力列名名前の決まり方
1a.idid列参照なので、その列の名前
2b.idid列参照なので、その列の名前

検算(この結果になる理由)

修飾名 a.id も b.id も単純な列参照なので、どちらの出力名も id です(SELECT 文書「SELECT List」)。同名の列が 2 つできるため、AS で別の名前を付けるよう警告が 1 件出ます。

判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。

このツールの制約

ご利用にあたって

  • 結果は字句の読み取りにもとづく確認で、実際のデータベースでの解釈を保証するものではありません。
  • ドキュメントは PostgreSQL License で公開されています。このサイトはその内容を要約して参照しており、転載はしていません。

ほかの入力例