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

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

Patricia Arquette
Patricia Arquetteasal
2025-01-10 08:58:41775semak imbas

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

Kemas kini lajur dengan nilai daripada jadual berkaitan

Artikel ini meneroka cara mengemas kini lajur dalam jadual (QuestionTrackings) yang nilainya berasal daripada jadual yang berkaitan (QuestionAnswers) berdasarkan keadaan tertentu (QuestionID ialah NULL). Kita boleh mencapai ini menggunakan kenyataan UPDATE digabungkan dengan INNER JOIN.

Pertanyaan SQL:

<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>

Penerangan:

  • Gunakan INNER JOIN untuk mewujudkan sambungan antara dua jadual berdasarkan AnswerID lajur biasa.
  • Keadaan q.QuestionID IS NULL memastikan kemas kini hanya mempengaruhi baris dalam jadual Penjejakan Soalan dengan ID Soalan adalah NULL.
  • Fasal
  • SET mengemas kini lajur ID Soalan dalam jadual QuestionTrackings (q.QuestionID) dengan ID Soalan yang sepadan daripada jadual QuestionAnswers (a.QuestionID).

Nota:

Sebelum melaksanakan pertanyaan KEMASKINI, adalah disyorkan untuk melihat pratonton data yang terjejas. Untuk melakukan ini, anda boleh mengubah suai pertanyaan anda untuk memasukkan perkara berikut:

<code class="language-sql">SELECT *
FROM QuestionTrackings q
INNER JOIN QuestionAnswers a
ON q.AnswerID = a.AnswerID
WHERE q.QuestionID IS NULL
-- 可在此处添加其他条件</code>

Ini akan memaparkan baris yang akan dikemas kini dan mengesahkan bahawa setiap AnswerID hanya mempunyai satu ID Soalan yang berkaitan untuk mengelakkan ketidakkonsistenan data.

Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Lajur dalam Satu Jadual Menggunakan Nilai 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