sql >> Databáze >  >> RDS >> PostgreSQL

jak vybrat pouze jedinečné hodnoty ze souvisejících tabulek

K provedení vnějšího spojení pouze na prvních řádcích můžete použít funkci okna:

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;

Online příklad:https://rextester.com/GNYF31027



  1. Z časového razítka v SQL, výběr záznamů z dneška, včerejška, tohoto týdne, tohoto měsíce a mezi dvěma daty php mysql

  2. Jak najít odlišné sloupce ve vnořeném poddotazu v SQL?

  3. INST_TOP (Oracle R12 INSTANCE_HOME) dekódováno

  4. Vzájemně se vylučující hodnoty v SQL