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

2つのテーブルの列を1つの出力にマージするにはどうすればよいですか?

    クエリで列を指定すると、うまくいくはずです:

    select a.col1, b.col2, a.col3, b.col4, a.category_id 
    from items_a a, items_b b 
    where a.category_id = b.category_id
    

    必要な列の選択に関してトリックを実行する必要があります。

    一部のデータがitems_aにのみ存在し、一部のデータがitems_bにのみ存在するという事実を回避するには、次のことができます。

    select 
      coalesce(a.col1, b.col1) as col1, 
      coalesce(a.col2, b.col2) as col2,
      coalesce(a.col3, b.col3) as col3,
      a.category_id
    from items_a a, items_b b
    where a.category_id = b.category_id
    

    合体関数は最初のnull以外の値を返すため、各行でcol1がnull以外の場合はそれを使用し、そうでない場合はcol2などから値を取得します。



    1. ヘアサロンデータベースプロジェクト

    2. SQLServerでのINSERTまたはUPDATEのソリューション

    3. Oracleを使用したJPAでの悲観的なロックが機能しない理由

    4. SQLiteFTS3テーブルの行IDを取得します