資料庫表更新:將欄位與參考值對齊
您的問題涉及更新 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中文網其他相關文章!