首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >postgresql中的VIiew

问postgresql中的VIiew
EN

Stack Overflow用户
提问于 2019-11-24 20:48:53
回答 2查看 37关注 0票数 0

我对postresql视图有一个问题。我做了一个从两个表中获取信息的视图。一个记录了他们的姓名、号码和电话号码,另一个记录了他们的家庭地址、工作地址、电子邮件、创建日期、地址类型1和2从属地址,无论是公司还是家庭以及其他类似的事情。我确实得到了一个视图,但它显示了所有信息。

如果一个客户输入了20个公司地址和家庭地址,那么也会出现20个公司地址,我想向我显示给定客户输入的最后一个公司地址和最后一个家庭地址。如果我有3个客户端,有5个工作地址和家庭地址,我想给每个客户端最后一个家庭地址和工作地址。

EN

回答 2

Stack Overflow用户

发布于 2019-11-24 20:54:17

如果您希望每个客户端都有一条记录,那么distinct on就会出现在脑海中。如下所示:

代码语言:javascript
复制
select distinct on (client_id) t1.*, t2.*
from t1 join
     t2
     using (client_id)
order by cllient_id, t2.created_at desc;
票数 0
EN

Stack Overflow用户

发布于 2019-11-25 04:43:03

--查看: public.vi_a

代码语言:javascript
复制
-- DROP VIEW public.vi_a;

CREATE OR REPLACE VIEW public.vi_a AS
 SELECT pmc.employee_id AS "FF",
    pmc.first,
    pmc.surname,
    ppa.address_1,
    ppa.address_2,
    ppa.date,
    ppa.address_type,
    ppa.employee
   FROM a pmc
     LEFT JOIN b ppa ON pmc.employee_id = ppa.employee;

ALTER TABLE public.vi_a
    OWNER TO postgres;

所以我创建了一个视图

只有红色依赖类型中的内容,无论是1还是2,都应该出现在视图enter image description here中

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59017817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档