【发布时间】:2014-04-21 10:42:21
【问题描述】:
我有一个 100 行的表,索引为 1-100。我有另一个 50 行的表,索引为 1-50。我想取 50 行表中的行,并更新 100 行表中相应索引处的值:
UPDATE t100 SET text = (SELECT text FROM t50 WHERE t50.id = t100.id)
它可以工作,但它会将 100 行表中的第 51-100 行变为NULL。我只是想把这些数据保存在那里。我究竟做错了什么?
【问题讨论】:
-
您没有 WHERE 条件,因此它将更新所有行。由于您没有要放入所有行的数据,其余的将设置为 NULL。
-
如果您需要帮助找到更通用的解决方案,您可能需要添加您正在使用的 RDBMS (oracle/mysql/sql server/...)。
标签: sql merge sql-update