我现在有一个主结果表(test1),它存储了我所有的问题记录,还有一个表(test2),它大约每星期运行一次,我试图在每周更新中找到那些不存在的记录,然后更新主结果表中的日期,因为它在系统中被更新以进行更正。
我正在尝试添加来自 test2
表到 test1
如果它们还不在表中,则返回表。
这样做有效:
insert into table test1 (id, name, code)
select * from test2 t2 where t2.id not in (select id from test1);
我也在尝试更新表
test1 'Corrected_date'
列以显示在中找到的所有记录的当前\u日期 test1
但不是在 test2
示例数据如下:
表1
ID NAME CODE CORRECTED_DATE
1 TEST 3
29 TEST2 90
表2
ID NAME CODE
12 TEST5 20
1 TEST 3
表1的预期最终结果
ID NAME CODE CORRECTED_DATE
1 TEST 3
29 TEST2 90 3/13/2019
12 TEST5 20
1条答案
按热度按时间7jmck4yq1#
使用完全联接覆盖表。
FULL JOIN
返回联接记录+未从左表联接+未从右表联接。您可以使用case语句实现如下逻辑:另请参见有关增量更新的类似问题,您的逻辑不同,但方法相同:https://stackoverflow.com/a/37744071/2700344
使用数据进行测试:
结果:
结果如预期。