GBase 8c
其他
问答

跨库联表查询的SQL问题

发表于2025-08-08 09:40:5766次浏览1个评论

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

【GBase版本】:8C

【操作系统】:ky10.aarch64

【CPU】:x86

【问题描述】*:本地跨库联表查询(本地库a 跨 本地库b)除了使用dblink还有其它语法可实现?

评论

登录后才可以发表评论
用户头像
GBase用户137发表于 11个月前
还可以使用FDW(Foreign Data Wrapper)功能。
通过创建外部表映射其他库中的表,支持跨库查询:
-- 创建外部数据包装器
CREATE EXTENSION postgres_fdw;

-- 创建服务器连接
CREATE SERVER remote_server FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host 'localhost', dbname '库b');

-- 创建用户映射
CREATE USER MAPPING FOR current_user SERVER remote_server
OPTIONS (user '用户名', password '密码');

-- 创建外部表映射库b中的表
CREATE FOREIGN TABLE local_b_table (
id int,
name text
) SERVER remote_server OPTIONS (schema_name 'public', table_name '源表名');

-- 跨库联表查询
SELECT * FROM 库a.本地表 a JOIN local_b_table b ON a.id = b.id;
最佳回答