sql >> データベース >  >> RDS >> PostgreSQL

2つのテーブルを結合するときに1つの結合キーを削除する方法

    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値のルールに注意する必要があります...

    マニュアルの詳細




    1. MySQLテーブルの列で最も一般的な結果を見つけるにはどうすればよいですか?

    2. gormの構造体にネストされたオブジェクトを取得する

    3. ExcelデータをPostgreSQL9.3にインポートします

    4. MySQLiプリペアドステートメントをループで使用する場合、いつbind_paramを呼び出しますか?