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

Pentaho(Kettle)中双主键关联表合并属性的实现问题问询

双主键关联合并表实现方案

前提说明

现有两张表均以anys_mes_dia、aircraftreg为联合主键,表1独有的需要输出的字段为dy、add,表2独有的需要输出的字段为cn。

实现逻辑

  • 采用全外连接模式关联两张表,保留两个表所有的主键组合记录
  • 未匹配到关联记录的行,对应缺失字段自动填充null

通用SQL实现(支持FULL OUTER JOIN的数据库:PostgreSQL、Oracle、SQL Server等)

SELECT
  COALESCE(t1.anys_mes_dia, t2.anys_mes_dia) AS anys_mes_dia,
  COALESCE(t1.aircraftreg, t2.aircraftreg) AS aircraftreg,
  t1.dy,
  t1.add,
  t2.cn
FROM 表1 t1
FULL OUTER JOIN 表2 t2
  ON t1.anys_mes_dia = t2.anys_mes_dia
  AND t1.aircraftreg = t2.aircraftreg;

MySQL适配实现(MySQL不支持原生全外连接,用左连接+右连接合并实现)

-- 取表1全部记录+匹配到的表2字段
SELECT
  t1.anys_mes_dia,
  t1.aircraftreg,
  t1.dy,
  t1.add,
  t2.cn
FROM 表1 t1
LEFT JOIN 表2 t2
  ON t1.anys_mes_dia = t2.anys_mes_dia
  AND t1.aircraftreg = t2.aircraftreg

UNION

-- 取表2独有的未匹配到表1的记录
SELECT
  t2.anys_mes_dia,
  t2.aircraftreg,
  t1.dy,
  t1.add,
  t2.cn
FROM 表1 t1
RIGHT JOIN 表2 t2
  ON t1.anys_mes_dia = t2.anys_mes_dia
  AND t1.aircraftreg = t2.aircraftreg;

结果说明

最终输出的结果集完全覆盖你需要的anys_mes_dia、aircraftreg、dy、add、cn5个字段,所有缺失属性会自动填充为null值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:06:04