还是新的,但学习很多。
我有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。
谢谢,
斯蒂芬