Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengemas kini Rekod Jadual Berdasarkan ID Padanan dalam SQL?
Pengenalan
Dalam pengurusan pangkalan data, kadangkala perlu mengemas kini data dalam satu jadual berdasarkan ID yang sepadan dalam jadual lain. Ini amat berguna apabila memindahkan data atau menyegerakkan maklumat antara jadual.
Huraian Masalah
Andaikan kita mempunyai pangkalan data dengan dua jadual, Sales_Import
dan RetrieveAccountNumber
, setiap jadual mengandungi lajur bernama LeadID
. Jadual Sales_Import
mempunyai lajur AccountNumber
yang perlu dikemas kini dengan nilai LeadID
yang sepadan daripada jadual RetrieveAccountNumber
berdasarkan nilai AccountNumber
yang sepadan.
Percubaan yang gagal
Percubaan awal untuk mengemas kini rekod menggunakan pertanyaan berikut gagal:
<code class="language-sql">UPDATE [Sales_Lead].[dbo].[Sales_Import] SET [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber FROM RetrieveAccountNumber WHERE [Sales_Lead].[dbo].[Sales_Import]. LeadID = RetrieveAccountNumber.LeadID)</code>
Pertanyaan ini menggantikan nombor akaun dengan nilai NULL.
Penyelesaian
Penyelesaian kepada masalah ini terletak pada penggunaan sintaks UPDATE FROM
digabungkan dengan operasi gabungan. Pendekatan ini membolehkan kami mengemas kini rekod dalam satu jadual berdasarkan nilai padanan dalam jadual lain. Berikut ialah pertanyaan SQL untuk sistem pangkalan data yang berbeza:
MySQL dan MariaDB
<code class="language-sql">UPDATE Sales_Import SI, RetrieveAccountNumber RAN SET SI.AccountNumber = RAN.AccountNumber WHERE SI.LeadID = RAN.LeadID;</code>
MS SQL
<code class="language-sql">UPDATE Sales_Import SET Sales_Import.AccountNumber = RAN.AccountNumber FROM Sales_Import SI INNER JOIN RetrieveAccountNumber RAN ON SI.LeadID = RAN.LeadID;</code>
Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Rekod Jadual Berdasarkan ID Padanan dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!