如何在PostgreSQL中加入两个子查询的结果?

Fal*_*con 2 sql postgresql join subquery

你好我是新手在sql(postgresql)
我有2个表作为 2个不同选择的结果

       all calls                    our customer contacts
   number contact_id      and     contact_id    name
    3213      12                        12     jonh
    3213      34                        16     michael
    3213      43                        65     hewlet
    5432      16                        32     steward
    5432      51
    6543      65
    2322      54
    2322      32
Run Code Online (Sandbox Code Playgroud)

1个号码可以属于不同的联系人...(联系人属于不同的客户)我需要从第一个结果表中选择不同的号码.和第二张表中的联系人的姓名..

以及如何统一我的2个选择

谢谢.

Jør*_*ode 9

您将无法使用该distinct关键字,因为您实际上也想contact_idall_calls表中选择.相反,您需要使用其中一个聚合函数contact_id为每个不同的电话号码选择一个.

在这个例子中,我使用了这个min()函数,它将为我contact_id提供每个电话号码数字最低的联系人:

select tmp.number, contacts.name
from (
  select number, min(contact_id) as min_id
  from all_calls
  group by number
) as tmp
join contacts on tmp.min_id = contacts.contact_id
Run Code Online (Sandbox Code Playgroud)