首页 >数据库 >mysql教程 >如何使用相关表更新数据库表中的 NULL QuestionID?

如何使用相关表更新数据库表中的 NULL QuestionID?

Barbara Streisand
Barbara Streisand原创
2025-01-10 06:48:46547浏览

How to Update NULL QuestionIDs in a Database Table Using a Related Table?

数据库表更新:将列与引用值对齐

您的问题涉及更新 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn