我在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是空的(不应该是空的),并且需要等于该MACAddress的lastweek.field2。
谢谢大家。
发布于 2014-10-31 09:48:37
你需要加入这周和上周的表格。
UPDATE thisweek
JOIN lastweek
ON thisweek.MACAddress = lastweek.MACAddress
AND thisweek.field2 =''
SET thisweek.field2 = lastweek.field2发布于 2014-10-31 09:49:45
我认为你需要以下几点:
UPDATE tw
SET tw.Field2 = lw.Field2
FROM
ThisWeek tw
JOIN LastWeek lw ON tw.MACAddress = lw.MACAddress
WHERE
tw.Field2 = ''发布于 2017-07-06 13:13:33
update table1
inner join table2 on table1.id = table2.id and (table1.name = '' or table1.name is null)
set table1.name = table2.name;https://stackoverflow.com/questions/26666268
复制相似问题