2014-10-31 128 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; 
相關問題