我正在尝试创建转换,需要使用Merge Join
来合并两个基于查询的数据库,我有点困惑我应该在First Step
中填写什么,Second Step
查找每种查询格式。
查询格式 :
SELECT * FROM A a LEFT JOIN B b on a.value=b.value
SELECT * FROM A a LEFT JOIN B b on b.value=a.value
有多种方法可以做到这一点。
-
在
Table input step
中编写带有联接的 sql。如果您的表在同一个数据库中,请快速找到一个脏的解决方案,但不要告诉 PDI 专家您是这样做的。 -
如果您知道每个 A 记录只有一个 B 记录,请使用
Lookup Stream Step
。非常、非常、非常高效。主流是 A,查找步骤是 B。 -
如果每个 A 记录有多个 B 记录,请使用
Join Rows
。不要害怕,你并没有真正制造笛卡尔乘积,因为你可以把你的条件 a.value=b.value。 -
在同样的情况下,您也可以制作
Merge join
。第一步是在 sql select 语句中编写第一步。
多种方法可以做到这一点。 您可以使用表输入步骤,只需编写查询即可。无需执行任何其他操作即可实现上述查询。