You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Tableau中跨Postgre与MySQL处理表?无法执行全外连接

跨PostgreSQL/MySQL表的Tableau全外连接解决方案

方法1:自定义SQL模拟全外连接

跨不同数据库时,Tableau可视化界面的连接选项可能不支持直接全外连接,你可以通过自定义SQL手动实现逻辑:

  • 先分别建立PostgreSQL和MySQL的数据源连接
  • 创建自定义SQL,用UNION ALL结合NOT EXISTS来覆盖全外连接的所有场景(左表独有、右表独有、交集),示例如下(替换成你的表名和字段):
-- 取两表交集记录
SELECT p.col1, p.col2, p.pg_specific_col, m.mysql_specific_col, 'both' AS source
FROM postgres_db.public.your_pg_table p
JOIN mysql_db.your_mysql_table m
ON p.col1 = m.col1 AND p.col2 = m.col2

UNION ALL

-- 取PostgreSQL独有的记录
SELECT p.col1, p.col2, p.pg_specific_col, NULL AS mysql_specific_col, 'only_pg' AS source
FROM postgres_db.public.your_pg_table p
WHERE NOT EXISTS (
    SELECT 1 FROM mysql_db.your_mysql_table m
    WHERE m.col1 = p.col1 AND m.col2 = p.col2
)

UNION ALL

-- 取MySQL独有的记录
SELECT m.col1, m.col2, NULL AS pg_specific_col, m.mysql_specific_col, 'only_mysql' AS source
FROM mysql_db.your_mysql_table m
WHERE NOT EXISTS (
    SELECT 1 FROM postgres_db.public.your_pg_table p
    WHERE p.col1 = m.col1 AND p.col2 = m.col2
)

方法2:数据融合实现全外匹配

Tableau的数据融合功能可以跨数据源关联数据,设置成全外逻辑:

  • 将其中一张表设为主数据源(拖入画布),另一张作为辅助数据源添加到数据面板
  • 从主数据源拖入共同字段到视图,再从辅助数据源拖入需要的字段,Tableau会自动开启融合
  • 右键辅助数据源的共同字段,选择「编辑数据融合」,将匹配方式改为「所有行」,这样就能保留两边所有记录,实现类似全外连接的效果

方法3:迁移数据到同一数据库

如果上述方法操作复杂,最直接的方式是把其中一张表的数据导出(比如MySQL表导出为CSV),导入到另一数据库(PostgreSQL)中,之后在同一数据库内执行标准的FULL OUTER JOIN,再将合并后的结果连接到Tableau。

内容的提问来源于stack exchange,提问作者TonyTony2000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 05:08:08