我有两个表(比如,A 和 B)。我的任务是将 B 与 A 同步,即如果 A 中存在但 B 中不存在,则将记录添加到 B;如果 B 中存在但 A 中不存在,则从 B 中删除记录。
A 和 B 可以有重复的记录,这样如果 A 中的记录是重复的,那么 B 也应该有重复的记录。A 和 B 中的样本数据
**Table A** **Table B**
id identifier id identifier
100 capital 1001 bat
201 bat 1002 bat
202 bat 1003 bat
5010 keyboard
为此,我使用外连接从 A 和 B 获取记录,这样我的输出看起来像:
A.id B.id identifier
100 null capital
201 1001 bat
201 1002 bat
201 1003 bat
202 1001 bat
202 1002 bat
202 1003 bat
null 5010 keyboard
因此在上面的例子中,100 和 5010 分别是添加和删除候选,这很容易计算。
问题是发现 1003 也是删除候选。由于 201 和 202 分别映射到 1001 和 1002。
我可以在数据库中做到这一点,通过对数据库中的重复项进行编号,就像在MYSQL 中所做的那样 :在自联接时避免重复记录的笛卡尔积 但是由于一些限制,我只能使用外联接加载上述格式的数据。因此,我需要 JAVA 中的算法来执行上述操作。提前致谢。
手掌心
相关分类