Cabaran:
Jadual penjejakan mengandungi baris dengan nilai NULL dalam lajur "QuestionID". Nasib baik, lajur "ID Jawapan" yang berkaitan dalam jadual yang sama memegang kunci untuk mencari "ID Soalan" yang betul dalam jadual "Jawapan". Matlamatnya ialah untuk mengisi entri "QuestionID" NULL ini dengan nilai yang sepadan daripada jadual "Jawapan".
Penyelesaian:
Berikut ialah pertanyaan SQL untuk mencapai kemas kini ini:
<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>
Penjelasan:
Pertanyaan ini menggunakan INNER JOIN
untuk menyambungkan jadual QuestionTrackings
(disebut sebagai q
) dan QuestionAnswers
(dinyatakan sebagai a
). Syarat bergabung q.AnswerID = a.AnswerID
memastikan bahawa hanya baris yang sepadan (berdasarkan AnswerID
) dipertimbangkan. Klausa SET
memberikan nilai a.QuestionID
kepada q.QuestionID
untuk setiap baris dengan q.QuestionID
ialah NULL.
Pertimbangan Penting:
Pratonton Kemas Kini: Sebelum menjalankan pernyataan UPDATE
, laksanakan pertanyaan SELECT
(menggunakan klausa JOIN
dan WHERE
yang sama) untuk pratonton baris yang akan terjejas. Ini membolehkan anda mengesahkan ketepatan kemas kini sebelum membuat sebarang perubahan pada data anda.
Integriti Data: Sahkan bahawa setiap AnswerID
dalam jadual QuestionTrackings
secara unik memetakan kepada satu QuestionID
dalam jadual QuestionAnswers
. Nilai AnswerID
pendua boleh membawa kepada hasil kemas kini yang tidak dapat diramalkan.
Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini ID Soalan NULL dalam Jadual Penjejakan Menggunakan AnswerIDs Berkaitan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!