2014-10-31 108 views
0

我有一个SQL查询/ SP的问题,我试图更新一个表中缺少特定字段中的数据从另一个表中那些相同字段中的数据存在并且是有效的。这里的诀窍是我想在第一个表中定位一个值。我可以使它与INSERT INTO/SELECT FROM组合工作,但会创建重复记录。SQL查询更新表从另一个表中缺少字段

我使用mysql 5.x.这里是细节。缺失数据表为thisweek,有效数据表为lastweek。字段1是MACAddress(它存在并且是锚点)并存在于两个表中(例如,BE:EF:BA:BE:CA:FE),thisweek中的字段2-10为空(''),但存在数据在表lastweek的那些相同字段(Fields2-10)中。

UPDATE thisweek 
SET thisweek.field2 = lastweek.field2 
where thisweek.MACAddress = lastweek.MACAddress and thisweek.filed2 = ''; 

我知道查询没有接近任何地方,所以寻求帮助。同样,两个表中都存在相同的MACAddress,表格之间的唯一区别是thisweek中的字段2为空,并且该值应该等于MACAddresslastweek.field2

谢谢大家。

+0

你使用MySQL或SQL Server?它们不是同一件事。 – 2014-10-31 01:39:38

回答

0

你需要加入本周和lastweek表。

UPDATE thisweek 
JOIN lastweek 
ON thisweek.MACAddress = lastweek.MACAddress 
AND thisweek.field2 ='' 
SET thisweek.field2 = lastweek.field2 
0

我想你想以下几点:

UPDATE tw 
    SET tw.Field2 = lw.Field2 
FROM 
    ThisWeek tw 
    JOIN LastWeek lw ON tw.MACAddress = lw.MACAddress 
WHERE 
    tw.Field2 = '' 
0
update table1 
inner join table2 on table1.id = table2.id and (table1.name = '' or table1.name is null) 
set table1.name = table2.name; 
相关问题