在 Postgres 中跨模式查询

Posted

技术标签:

【中文标题】在 Postgres 中跨模式查询【英文标题】:Querying across schemas in Postgres 【发布时间】:2010-11-30 15:13:58 【问题描述】:

我正在使用 Postgres,并且我有多个模式(即 S1 和 S2)。我想运行一个使用 S1 和 S2 中的表的查询。有没有可能做这样的事情:

select * from S1.table1, S2.table2

感谢所有回复。

【问题讨论】:

这会给你一个CROSS JOIN,它可能会返回一个巨大的数据集! 【参考方案1】:

是的。语法就是你写的。

【讨论】:

【参考方案2】:

确实,我认为正确的查询是:

select * from S1.table1
UNION ALL
select * from S2.table2

【讨论】:

OP 并没有很具体地说明他想对数据做什么(只是谈到了一个使用两个表的查询)。根据他的实际目标,正确的解决方案可能是他所说的、您所说的或完全其他的(“Select * from s1.table1 join s2.table2 on....”或“select * from s1.table1 where fieldXYZ 不在(从 s2.table2 中选择 fieldABC)”)。回答这个问题的最佳方法可能是将其解释为询问在表名之前加上相应的模式名称和一个点是否是跨模式引用表的正确方法,答案是肯定的

以上是关于在 Postgres 中跨模式查询的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL数据库中跨库访问解决方案

在 Postgres 的选择查询中在 FROM 中动态传递模式名称和表名称

带有 Redshift 的 Postgres 外部模式:我可以使用外部数据包装器吗?

Postgres 模式的 SQLAlchemy 支持

NodeJS Postgres 切换工作模式

Spring Boot jdbc模板在自定义模式下的postgres中找不到表