在 Pentaho 中应用左连接
Applying Left Join in Pentaho
我正在尝试创建转换,需要通过使用 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
有多种方法可以做到这一点。
您可以使用 TableInput Step 并简单地编写您的查询。无需执行任何其他操作即可实现上述查询。
有多种方法可以实现。
在Table input step
中加入sql。如果您的 table 在同一个数据库中,请快速提出一个肮脏的解决方案,但不要告诉 PDI 专家您是这样做的。
如果您知道每个 A 记录只有一个 B 记录,请使用 Lookup Stream Step
。非常非常非常有效。主要流程是 A,查找步骤是 B。
如果每个 A 记录有很多 B 记录,请使用 Join Rows
。不要害怕,你并没有真正做笛卡尔积,因为你可以把你的条件 a.value=b.value.
同样的情况,你也可以做一个Merge join
。第一步就是你在sqlselect语句中写拳的步骤。
我正在尝试创建转换,需要通过使用 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
有多种方法可以做到这一点。 您可以使用 TableInput Step 并简单地编写您的查询。无需执行任何其他操作即可实现上述查询。
有多种方法可以实现。
在
Table input step
中加入sql。如果您的 table 在同一个数据库中,请快速提出一个肮脏的解决方案,但不要告诉 PDI 专家您是这样做的。如果您知道每个 A 记录只有一个 B 记录,请使用
Lookup Stream Step
。非常非常非常有效。主要流程是 A,查找步骤是 B。如果每个 A 记录有很多 B 记录,请使用
Join Rows
。不要害怕,你并没有真正做笛卡尔积,因为你可以把你的条件 a.value=b.value.同样的情况,你也可以做一个
Merge join
。第一步就是你在sqlselect语句中写拳的步骤。