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

関連するテーブルから一意の値のみを選択する方法

    ウィンドウ関数を使用して、最初の行でのみ外部結合を実行できます。

    select t.id, t.b1_name, b2.b2_name
    from (
      select p.id, b1.b1_name, row_number() over (partition by p.id order by b1_name) as rn
      from parent p
        join branch_1 b1 on b1.parent_id = p.id
    ) t
      left join (
        select parent_id, b2_name, 
               row_number() over (partition by parent_id) as rn
        from branch_2 
      ) b2 on b2.parent_id = t.id and b2.rn = t.rn
    order by t.id;
    

    オンラインの例: https://rextester.com/GNYF31027



    1. Rails開発のためのOSXへのPostgreSQLのインストール

    2. 複数の列から最小値を選択するための最良の方法は何ですか?

    3. Oracle10gタイムゾーンの混乱

    4. PostgreSQLで配列の要素のインデックスを作成するにはどうすればよいですか?