Herausforderung:
Eine Tracking-Tabelle enthält Zeilen mit NULL-Werten in der Spalte „QuestionID“. Glücklicherweise enthält die zugehörige Spalte „AnswerID“ in derselben Tabelle den Schlüssel zum Finden der richtigen „QuestionID“ in der Tabelle „Answers“. Das Ziel besteht darin, diese NULL-Einträge „QuestionID“ mit den entsprechenden Werten aus der Tabelle „Answers“ zu füllen.
Lösung:
Hier ist die SQL-Abfrage, um dieses Update durchzuführen:
<code class="language-sql">UPDATE QuestionTrackings q INNER JOIN QuestionAnswers a ON q.AnswerID = a.AnswerID SET q.QuestionID = a.QuestionID WHERE q.QuestionID IS NULL;</code>
Erklärung:
Diese Abfrage verwendet ein INNER JOIN
, um die Tabellen QuestionTrackings
(alias q
) und QuestionAnswers
(alias a
) zu verbinden. Die Join-Bedingung q.AnswerID = a.AnswerID
stellt sicher, dass nur übereinstimmende Zeilen (basierend auf AnswerID
) berücksichtigt werden. Die SET
-Klausel weist a.QuestionID
den Wert q.QuestionID
für jede Zeile zu, in der q.QuestionID
NULL ist.
Wichtige Überlegungen:
Vorschau des Updates anzeigen: Bevor Sie die UPDATE
-Anweisung ausführen, führen Sie eine SELECT
-Abfrage aus (unter Verwendung derselben JOIN
- und WHERE
-Klauseln), um eine Vorschau der betroffenen Zeilen anzuzeigen. Dadurch können Sie die Richtigkeit der Aktualisierung überprüfen, bevor Sie Änderungen an Ihren Daten vornehmen.
Datenintegrität: Bestätigen Sie, dass jedes AnswerID
in der QuestionTrackings
-Tabelle eindeutig einem einzelnen QuestionID
in der QuestionAnswers
-Tabelle zugeordnet ist. Doppelte AnswerID
-Werte könnten zu unvorhersehbaren Aktualisierungsergebnissen führen.
Das obige ist der detaillierte Inhalt vonWie aktualisiere ich NULL-Fragen-IDs in einer Tracking-Tabelle mithilfe verwandter Antwort-IDs?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!