Postgresはしません 出力列名が重複するとエラーが発生しますが、一部のクライアントではエラーが発生します。 (重複した名前もあまり役に立ちません。)
いずれにせよ、 USING
を使用してください 2つの結合列を1つに折りたたむための結合条件としての句:
SELECT *
FROM tbl_a a
LEFT JOIN tbl_b b USING (id);
同じテーブルを結合(自己結合)している間、重複する列名が増えます。クエリは、そもそもほとんど意味がありません。これは異なるにとって意味があり始めます テーブル。あなたが最初にあなたの質問で述べたように:I have two tables ...
すべての重複する列名を回避するには、それらをSELECT
にリストする必要があります 明示的に句-異なる名前の両方のインスタンスを取得するために列エイリアスを処理する可能性があります。
または、 NATURAL
を使用することもできます 参加-説明のつかないユースケースに当てはまる場合:
SELECT *
FROM tbl_a a
NATURAL LEFT JOIN tbl_b b;
これは、同じ名前を共有するすべての列で結合し、それらを自動的に折りたたむ-USING
にすべての一般的な列名をリストするのとまったく同じです 句。考えられるNULL値のルールに注意する必要があります...