Aktualisierung der Datenbankspalten: Abgleich von Werten in verwandten Tabellen
Die Datenbankverwaltung erfordert häufig die Aktualisierung einer Spalte in einer Tabelle basierend auf Daten aus einer zugehörigen Tabelle. Dies ist entscheidend für die Datenintegrität und Fehlerbehebungen.
Szenario:
Stellen Sie sich zwei Tabellen vor: QuestionTrackings
und QuestionAnswers
.
QuestionTrackings
:QuestionID
(möglicherweise NULL)AnswerID
QuestionAnswers
:AnswerID
QuestionID
Ein Fehler hat dazu geführt, dass einige QuestionTrackings
Zeilen NULL-QuestionID
-Werte haben. Glücklicherweise haben die entsprechenden AnswerID
-Werte die richtigen QuestionID
in der QuestionAnswers
-Tabelle. Die Aufgabe besteht darin, die fehlenden QuestionID
-Werte in QuestionTrackings
.
Lösung:
Dies kann mithilfe einer UPDATE
-Anweisung in Kombination mit einem 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
verknüpft Zeilen mit passenden AnswerID
Werten.SET q.QuestionID = a.QuestionID
aktualisiert QuestionTrackings
mit dem richtigen QuestionID
von QuestionAnswers
.WHERE q.QuestionID IS NULL
beschränkt die Aktualisierung auf Zeilen mit fehlenden QuestionID
Werten.Wichtige Hinweise:
UPDATE
-Anweisung ausführen, empfiehlt es sich, eine SELECT
-Anweisung mit derselben JOIN
-Anweisung zu verwenden, um eine Vorschau der Ergebnisse anzuzeigen und die Datengenauigkeit sicherzustellen. Bestätigen Sie, dass jedes AnswerID
einem einzelnen QuestionID
zugeordnet ist.WHERE
-Klauselbedingungen können für selektivere Aktualisierungen hinzugefügt werden (z. B. WHERE q.QuestionID IS NULL AND q.Status = 'Active'
).Das obige ist der detaillierte Inhalt vonWie aktualisiere ich eine NULL-Spalte in einer Tabelle mithilfe von Daten aus einer verwandten Tabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!