Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengemas kini Lajur NULL dalam Satu Jadual Menggunakan Data daripada Jadual Berkaitan?

Bagaimana untuk Mengemas kini Lajur NULL dalam Satu Jadual Menggunakan Data daripada Jadual Berkaitan?

Patricia Arquette
Patricia Arquetteasal
2025-01-10 10:03:44187semak imbas

How to Update a NULL Column in One Table Using Data from a Related Table?

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:

  • Pengesahan: Sebelum melaksanakan pernyataan 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.
  • Kemas Kini Bersyarat: Tambahan 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn