【发布时间】:2014-07-25 02:22:08
【问题描述】:
UPDATE master as m
SET m.husband = p.id
From per as p
where m.drid = p.drid AND p.address > 80000 AND p.address <= 154969
我有一个名为per 的表,其中有一个名为id 的列。基本上,我想在where 子句上的另一个名为master 的表中复制这些ID。
但是我收到一条错误消息,说关系“master”的列“m”不存在。 m 不是一列。我不确定我哪里出错了?
【问题讨论】:
-
是 MySQL 还是 Postgresql?
-
该错误与子句“as m”有关。在这种情况下这是不可能的。此外,很难理解您真正想要完成的内容。试试这个:
UPDATE master SET husband = (SELECT id FROM per WHERE master.drid = per.drid AND per.address > 80000 AND per.address <= 154969); -
Jan Trienes,我正在尝试更新表中的列 ID,与表主的列丈夫相同,条件是两个表中的 drids 相同。顺便说一句..你的建议就像我想要的那样。谢谢
-
@JanTrienes:您绝对可以在
UPDATE中为表起别名。您不允许做的是在SET子句中限定目标字段名称。
标签: sql database postgresql