Datenbanktabellenaktualisierung: Spalten mit referenzierten Werten ausrichten
Ihre Frage bezieht sich auf die Aktualisierung einer Datenbanktabelle, in der die QuestionID-Spalte Nullwerte enthält. Sie möchten diese Nullwerte mit den entsprechenden QuestionID-Werten in einer zugehörigen Tabelle „Answers“ gleichsetzen, auf die durch die AnswerID-Spalte verwiesen wird.
Um dies zu erreichen, können Sie einen Inner Join nutzen. Die folgende Abfrage zeigt, wie:
UPDATE QuestionTrackings q INNER JOIN QuestionAnswers a ON q.AnswerID = a.AnswerID SET q.QuestionID = a.QuestionID WHERE q.QuestionID IS NULL;
Die Operation INNER JOIN stellt eine Verbindung zwischen Zeilen in den Tabellen QuestionTrackings und QuestionAnswers basierend auf übereinstimmenden AnswerID-Werten her. Dadurch können wir für jede Zeile in der QuestionTrackings-Tabelle auf den QuestionID-Wert aus der QuestionAnswers-Tabelle zugreifen.
Sie können der WHERE-Klausel zusätzliche Bedingungen hinzufügen, um die zu aktualisierenden Zeilen weiter einzugrenzen. Wenn Sie beispielsweise nur Zeilen aktualisieren möchten, bei denen QuestionID null und AnswerID kleiner als 500 ist:
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;
Es wird empfohlen, vor der Ausführung der Aktualisierung eine Vorschau der zu aktualisierenden Zeilen mithilfe einer Auswahlabfrage anzuzeigen, um die Genauigkeit sicherzustellen :
SELECT * FROM QuestionTrackings q INNER JOIN QuestionAnswers a ON q.AnswerID = a.AnswerID WHERE q.QuestionID IS NULL;
Dies hilft Ihnen zu überprüfen, ob jeder AnswerID nur eine zugeordnete QuestionID zugeordnet ist, und mögliche Fehler während des Aktualisierungsprozesses zu vermeiden.
Das obige ist der detaillierte Inhalt vonWie aktualisiere ich NULL-Fragen-IDs in einer Datenbanktabelle mithilfe einer zugehörigen Tabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!