我在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 = ''

07-24 15:04