Kemas Kini Lajur Pangkalan Data: Nilai Padanan Merentas Jadual Berkaitan
Pengurusan pangkalan data selalunya memerlukan pengemaskinian lajur dalam satu jadual berdasarkan data daripada jadual yang berkaitan. Ini penting untuk integriti data dan pembetulan pepijat.
Senario:
Bayangkan dua jadual: QuestionTrackings
dan QuestionAnswers
.
QuestionTrackings
:QuestionID
(berkemungkinan NULL)AnswerID
QuestionAnswers
:AnswerID
QuestionID
Pepijat telah menyebabkan beberapa baris QuestionTrackings
mempunyai nilai NULL QuestionID
. Nasib baik, nilai AnswerID
yang sepadan mempunyai QuestionID
yang betul dalam jadual QuestionAnswers
. Tugasnya adalah untuk mengisi nilai QuestionID
yang hilang dalam QuestionTrackings
.
Penyelesaian:
Ini boleh dicapai dengan cekap menggunakan pernyataan UPDATE
digabungkan dengan 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
memautkan baris dengan nilai AnswerID
yang sepadan.SET q.QuestionID = a.QuestionID
kemas kini QuestionTrackings
dengan QuestionID
yang betul daripada QuestionAnswers
.WHERE q.QuestionID IS NULL
mengehadkan kemas kini kepada baris yang tiada nilai QuestionID
.Nota Penting:
UPDATE
, amalan terbaik adalah menggunakan pernyataan SELECT
dengan JOIN
yang sama untuk pratonton keputusan dan memastikan ketepatan data. Sahkan setiap AnswerID
memetakan kepada satu QuestionID
.WHERE
syarat klausa boleh ditambah untuk kemas kini yang lebih terpilih (cth., WHERE q.QuestionID IS NULL AND q.Status = 'Active'
).Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Lajur NULL dalam Satu Jadual Menggunakan Data daripada Jadual Berkaitan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!