我有2个表table1
和table2
,其中table1
包含到目前为止收集的数据,table2
包含table1
的数据以及一些更新/附加数据。我只需检索此更新/附加数据并将其插入table1
。
现在我知道我可以使用NOT IN
来执行此操作,但我不确定在大量记录的情况下这将是一个非常有效的解决方案。关于执行速度方面最佳方法的任何建议?
答案 0 :(得分:3)
这可以通过simple join
两个表
如下所示:
select t1.* from table1 as t1 join table2 as t2 on t1.id=t2.id where ...[]
答案 1 :(得分:0)
我不确定我是否正确理解了你的问题,但让我试一试。假设您有这样的设计:
TableA : {colA, colB, colC, colD, colE}
TableB : {colA, colB, RecC, RecD, RecE}
表格tableA
,tableB
)加在ColA
上。我假设TableA
的列(colC
,ColD
,colE
)将更新,记录基于TableB
的列({{ 1}},recC
,recD
)。
在您的陈述中:我只需要检索此更新/附加数据并将其插入table1。。我想您想根据recE
TableA
的记录
TableB
所以上面的陈述更新UPDATE TableA a INNER JOIN TableB b ON a.ColA = b.ColA
SET a.ColC = b.RecC,
a.ColD = b.RecD,
a.ColE = b.RecE
-- WHERE (Condition) -- if you want to have a condition.
中的所有记录,如果<{1}}中{/ 1}}也存在tableA
,因为我已经使用了colA
。您也可以使用tableB
。