mysql查询从table2中选择table1中不存在的数据

时间:2012-02-22 07:24:51

标签: php mysql

我有2个表table1table2,其中table1包含到目前为止收集的数据,table2包含table1的数据以及一些更新/附加数据。我只需检索此更新/附加数据并将其插入table1

现在我知道我可以使用NOT IN来执行此操作,但我不确定在大量记录的情况下这将是一个非常有效的解决方案。关于执行速度方面最佳方法的任何建议?

2 个答案:

答案 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}

表格tableAtableB)加在ColA上。我假设TableA的列(colCColDcolE)将更新,记录基于TableB的列({{ 1}},recCrecD)。

在您的陈述中:我只需要检索此更新/附加数据并将其插入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