数据库列更新:匹配相关表中的值
数据库管理通常需要根据相关表中的数据更新一个表中的列。 这对于数据完整性和错误修复至关重要。
场景:
想象两个表:QuestionTrackings
和 QuestionAnswers
。
QuestionTrackings
:QuestionID
(可能为 NULL)AnswerID
QuestionAnswers
:AnswerID
QuestionID
错误导致某些 QuestionTrackings
行具有 NULL QuestionID
值。 幸运的是,相应的 AnswerID
值在 QuestionID
表中具有正确的 QuestionAnswers
。 任务是填充 QuestionID
.QuestionTrackings
中缺少的
解决方案:
使用 UPDATE
语句结合 INNER JOIN
:
<code class="language-sql">UPDATE QuestionTrackings AS q INNER JOIN QuestionAnswers AS a ON q.AnswerID = a.AnswerID SET q.QuestionID = a.QuestionID WHERE q.QuestionID IS NULL;</code>
INNER JOIN
链接具有匹配 AnswerID
值的行。SET q.QuestionID = a.QuestionID
使用 QuestionTrackings
中的正确 QuestionID
更新 QuestionAnswers
。WHERE q.QuestionID IS NULL
将更新限制为缺少 QuestionID
值的行。重要提示:
UPDATE
语句之前,最佳实践是使用具有相同 SELECT
的 JOIN
语句来预览结果并确保数据准确性。 确认每个 AnswerID
映射到单个 QuestionID
。WHERE
子句条件以进行更多选择性更新(例如,WHERE q.QuestionID IS NULL AND q.Status = 'Active'
)。以上是如何使用相关表中的数据更新一个表中的 NULL 列?的详细内容。更多信息请关注PHP中文网其他相关文章!