数据库表更新:将列与引用值对齐
您的问题涉及更新 QuestionID 列包含空值的数据库表。您试图将这些空值设置为等于由 AnswerID 列引用的相关表“Answers”中相应的 QuestionID 值。
要实现此目的,您可以利用内部联接。以下查询演示了如何实现:
UPDATE QuestionTrackings q INNER JOIN QuestionAnswers a ON q.AnswerID = a.AnswerID SET q.QuestionID = a.QuestionID WHERE q.QuestionID IS NULL;
INNER JOIN 操作根据匹配的 AnswerID 值在 QuestionTrackings 和 QuestionAnswers 表中的行之间建立连接。这使我们能够从 QuestionTrackings 表中每一行的 QuestionAnswers 表中访问 QuestionID 值。
您可以向 WHERE 子句添加其他条件,以进一步缩小要更新的行范围。例如,如果您只想更新 QuestionID 为 null 并且 AnswerID 小于 500 的行:
UPDATE QuestionTrackings q INNER JOIN QuestionAnswers a ON q.AnswerID = a.AnswerID SET q.QuestionID = a.QuestionID WHERE q.QuestionID IS NULL AND q.AnswerID < 500;
建议在执行更新之前使用 select 查询预览要更新的行,以确保准确性:
SELECT * FROM QuestionTrackings q INNER JOIN QuestionAnswers a ON q.AnswerID = a.AnswerID WHERE q.QuestionID IS NULL;
这将帮助您验证每个 AnswerID 是否只有一个关联的 QuestionID 并避免更新过程中潜在的错误。
以上是如何使用相关表更新数据库表中的 NULL QuestionID?的详细内容。更多信息请关注PHP中文网其他相关文章!