SQL Update表来自not exists语句

时间:2013-05-15 14:54:19

标签: mysql sql-update sql-insert

还是新的,但学习很多。

我有2个表 AVDMASTER AVDupdates

我想使用来自AVDupdates的新数据( Fields: OWNER, REG, PREVIOUS )更新AVDMASTER中的当前现有行( Fields: OWNER, REG, PREVIOUS AVDupdates REG 中不存在 AVDMASTER REG ,但两个表中的UNIQUEID都匹配。 AVDMASTER是一个公平的表,有860K记录。

我的select语句似乎有效,因为我找到了4行要更新:

SELECT b.UNIQUEID, b.REG, b.PREVIOUS 
FROM AVDupdates b 
WHERE NOT EXISTS (SELECT l.REG FROM AVDMASTER AS l WHERE b.REG = l.REG)

但是我尝试了这个选择的更新语句,我收到了#1064错误。

UPDATE AVDMASTER 
SET l.REG=b.REG, l.OWNER=b.OWNER, l.PREVIOUS=b.PREVIOUS 
FROM (SELECT b.UNIQUEID, b.REG, bPREVIOUS `FROM AVDupdates b WHERE NOT EXISTS (SELECT l.REG FROM AVDMASTER AS l WHERE b.REG = l.REG))

希望你们中的一位SQL大师可以帮我解决更新语句,以及不存在的地方是否是最好的查询方法?

其次,我也对从AVDupdates中插入行的类似语句感兴趣,其中AVDMASTER中不存在UNIQUEID。

谢谢,

斯蒂芬

0 个答案:

没有答案