0

我有两个数据库:

  1. 行政

    Table: 员工

    Columns: id, name, city_id

  2. 连接

    Table: 城市

    Columns: id, name_of_city

我想在 postgre 数据库中使用Employee.city_id&City.id列加入这两个表。

我怎样才能做到这一点

4

4 回答 4

1

根据Postgresql 常见问题解答,除了当前数据库之外,没有直接的方法可以查询数据库。但是您可以使用dblink。dblink 是一个支持从数据库会话中连接到其他 PostgreSQL 数据库的模块。

于 2013-08-21T04:40:18.317 回答
0

您希望postgres_fdw在 PostgreSQL 9.3 中可用。它是一个 SQL/MED 外部数据包装器,可让您创建到远程表的“链接”。

您可以将 City 表链接到 Admin 数据库,然后从普通 SQL 查询它。PostgreSQL 甚至会做一些事情,比如在远程WHERE端运行一个条件并且只获取所需的行。它仍然比本地表效率低很多,因为许多连接类型不可用,并且在使用它之前传输数据存在开销。

于 2013-08-22T00:12:21.983 回答
0

从技术上讲,这可以通过 postgres 模块dblink实现,它允许您跨数据库连接。

话虽如此,当您考虑与跨数据库维护外键相关的一些架构和数据完整性问题时,您可能应该考虑仅将city表及其数据从connect数据库移动到admin数据库。

于 2013-08-21T04:40:33.757 回答
-2

尝试这个

SELECT e.id as emp_id,e.name,e.city_id,c.* FROM 'admin'.'employee' as e ,'connect'.'city' as c WHERE e.city_id = c.id;
于 2013-08-21T04:36:06.860 回答