根据两个表删除行

时间:2017-12-28 11:31:34

标签: pentaho kettle data-integration pentaho-data-integration

我有一个问题,我有一个主表和另一个表。我有一个表(事故),名为 Accident_ID 的属性(值如此1,4,7,10等等)

在其他名为伤亡的表格中,我有相同的属性 Accident_ID (但这里的值如下1,2,2,4,4,4,5,6,7,8 ,9,10,11等)。 =>有几个相同的ID,因为每个事故可能有更多的伤亡。

问题是我怎样才能删除表中的伤亡行,这些行中没有与表事故中相同的ID-s(所以我想删除表中伤亡人员的行ID-2,3,5,5,6, 8,9,11等)=>我喜欢100k ID-s所以我无法手动完成。

谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

你不需要PDI来做到这一点。一个简单的SQL查询可以解决您的问题。

DELETE FROM Casualties WHERE Accident_ID NOT IN (SELECT DISTINCT Accident_ID FROM Accidents)

答案 1 :(得分:-1)

使用Merge Diff步骤。它比较两个流(或表)并告诉添加,删除,修改或相同的行。然后Filter输出你不想要的行。