PostgreSQL
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL променя реда на върнатите редове

  2. Анализ на Json postgresql

  3. Колко схеми могат да бъдат създадени в postgres

  4. Свържете приложението iPhone към PostgreSQL с помощта на Libpq

  5. Как да прехвърлям varchar към boolean