有没有一种方法可以让你;“自动”;加入postgresql?

有没有一种方法可以让你;“自动”;加入postgresql?,postgresql,join,relational-database,Postgresql,Join,Relational Database,我的意思是: 我有两个父表: 表1 id主键 名称文本 表2 id主键 和一个子表,用于n-n关系: 表4儿童 id主键 id_1 INT id_2 INT 其中,表_child中的id_1和id_2指的是表1和表2中的列id 现在:我经常通过table1.id=table\u child.id1上的table\u child和table\u child之间的联接来执行请求,只是因为我需要table1.name列的值。 我想知道是否有办法避免这些连接,并在表\u child中声明一个“伪”列名

我的意思是: 我有两个父表:

表1 id主键 名称文本

表2 id主键

和一个子表,用于n-n关系: 表4儿童 id主键 id_1 INT id_2 INT

其中,表_child中的id_1和id_2指的是表1和表2中的列id

现在:我经常通过table1.id=table\u child.id1上的table\u child和table\u child之间的联接来执行请求,只是因为我需要table1.name列的值。 我想知道是否有办法避免这些连接,并在表\u child中声明一个“伪”列名,它不是一个真正的列,而是指向表\u 1中相应列的链接,以便: *我可以通过表_child.name访问该值 *但它始终与值table1.name同步


我希望我的解释是可以理解的…

继我的上述评论之后,您真正想要的答案是:

CREATE VIEW
    table1_child_view AS
SELECT
    table1.name,
    table1_child.*
FROM
    table1_child
INNER JOIN
    table1 ON
        table1.id = table1_child.id_1
然后可以在新视图上运行查询,例如:

SELECT name FROM table1_child_view WHERE ...

这就是
VIEW
s制作的目的。好的,太好了。但是视图是只读的,不是吗?为了能够更新,我必须使用规则而不是视图,对吗?为什么视图是只读的是一个问题?视图是只读的,但手写的RA表达式不是吗?@nicoroy:是的,这是一个替代触发器。尽管如此,在9.3中更简单的视图实际上是可编辑的:对不起,我的评论不清楚。我的意思是,我希望能够像更新table1_child_view SET name='blabla'这样做。同样,我想使用嵌入在更复杂请求中的这个“视图”,特别是将它与另一个表连接,例如,选择*FROM table_child_view As t1 internal将一些_表连接为t2,其中t1.name=。。。有没有可能的观点?