在更新两个表时如何执行左联接

时间:2020-02-19 11:40:16

标签: sql postgresql left-join

我有两个表:tb1和tb2,我正在执行左连接以从这两个表创建名为tb3的新表。有时,tb1和tb2会用新行进行更新,并且想要执行相同的左联接来创建更新的tb3表,是否可以在每次表更新时不编写新的左联接来执行此任务?什么样的任务最好的解决方案是什么?

1 个答案:

答案 0 :(得分:0)

使用视图:

create view v_tb3 as 
    select . . .
    from table1 t1 left join
         table2 t2
         on . . .
    . . .;

这将在您每次访问视图时运行查询。这样可以确保数据是最新的。

如果您实际上想将数据保留为表格(因此不需要重新计算),则可以使用materialized view

create materialized view mv_tb3 as 
    select . . .
    from table1 t1 left join
         table2 t2
         on . . .
    . . .;

但是,关于数据的最新性有一些警告。维护视图需要开销。 left join通常并不特别昂贵,因此我通常会建议一个简单的视图。

相关问题