我在SQL查询/ SP中遇到问题,在该问题中,我试图更新另一个表中特定字段中缺少数据的表,而另一个表中存在相同字段并且该表是有效的。这里的窍门是我想锚定第一个表中的值。我可以使其与INSERT INTO
/ SELECT FROM
组合一起使用,但是会创建重复记录。
我正在使用mysql 5.x.这是详细信息。数据丢失的表为thisweek
,数据有效的表为lastweek
。字段1是MACAddress
(存在并且是锚点)并且在两个表中都存在(例如BE:EF:BA:BE:CA:FE),thisweek
中的字段2-10为空白('') ,但表lastweek
中的相同字段(字段2-10)中有数据。
UPDATE thisweek
SET thisweek.field2 = lastweek.field2
where thisweek.MACAddress = lastweek.MACAddress and thisweek.filed2 = '';
我知道查询还没有结束,因此需要帮助。同样,两个表中都存在相同的
MACAddress
,而表之间的唯一区别是thisweek
中的field2为空白(并且不应为空白),并且该lastweek.field2
必须等于MACAddress
。谢谢大家
最佳答案
我认为您需要以下条件:
UPDATE tw
SET tw.Field2 = lw.Field2
FROM
ThisWeek tw
JOIN LastWeek lw ON tw.MACAddress = lw.MACAddress
WHERE
tw.Field2 = ''