Sql 使用多个联接更新表
我不是一个真正的SQL人,所以任何帮助都将不胜感激。当字段在一列上匹配而在另一列上不匹配时,我尝试更新表:Sql 使用多个联接更新表,sql,postgresql,sql-update,Sql,Postgresql,Sql Update,我不是一个真正的SQL人,所以任何帮助都将不胜感激。当字段在一列上匹配而在另一列上不匹配时,我尝试更新表: UPDATE dleads SET mag_name = magazines.mag_name FROM magazines WHERE dleads.umc = magazines.umc and dleads.mag_name <> magazines.mag_name UPDATE-dleads 设置杂志名称=杂志。杂志名称 杂志 其中,dleads.umc=杂志.um
UPDATE dleads
SET mag_name = magazines.mag_name
FROM magazines
WHERE dleads.umc = magazines.umc and
dleads.mag_name <> magazines.mag_name
UPDATE-dleads
设置杂志名称=杂志。杂志名称
杂志
其中,dleads.umc=杂志.umc和
dleads.mag_name杂志.mag_name
我可以让
选择
工作,但不能让更新
您的查询在处理空值时不可靠
您可以使用此选项:
从其中dleads.umc=magazies.umc的杂志更新dleads SET mag_name=magazies.mag_name,并合并(dleads.mag_name“”)合并(magazies.mag_name“”) 您的查询看起来与您描述的完全一样:
UPDATE dleads d
SET mag_name = m.mag_name
FROM magazines m
WHERE d.umc = m.umc
AND d.mag_name <> m.mag_name;
旁白:您在标题中提到了“多个连接”,但我在您的查询中只看到一个连接。一切看起来都正常。你有什么错误吗?您选择返回记录的查询是什么样子的?每个
dleads.mag_name
是否会返回多条记录?您的查询应该可以工作。请详细说明“不工作”的真正含义。
UPDATE dleads d
SET mag_name = m.mag_name
FROM magazines m
WHERE d.umc = m.umc
AND d.mag_name IS DISTINCT FROM m.mag_name;