我遇到了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之间的唯一区别是空白(并且它不应该是)并且需要等于{{1对于那个lastweek.field2
。
谢谢大家。
答案 0 :(得分:0)
你需要加入本周和上周的表格。
UPDATE thisweek
JOIN lastweek
ON thisweek.MACAddress = lastweek.MACAddress
AND thisweek.field2 =''
SET thisweek.field2 = lastweek.field2
答案 1 :(得分:0)
我想你想要以下内容:
UPDATE tw
SET tw.Field2 = lw.Field2
FROM
ThisWeek tw
JOIN LastWeek lw ON tw.MACAddress = lw.MACAddress
WHERE
tw.Field2 = ''
答案 2 :(得分:0)
update table1
inner join table2 on table1.id = table2.id and (table1.name = '' or table1.name is null)
set table1.name = table2.name;