Memanfaatkan Pernyataan SELECT untuk Kemas Kini Rekod Pelayan SQL
SQL Server menawarkan pernyataan INSERT...SELECT
untuk memasukkan baris. Panduan ini menunjukkan cara mengemas kini rekod sedia ada yang serupa menggunakan data yang diperoleh daripada jadual lain.
Kemas kini Struktur Pertanyaan
Sintaks berikut memudahkan pengemaskinian rekod berdasarkan data daripada pernyataan SELECT:
<code class="language-sql">UPDATE Table_A SET Table_A.col1 = Table_B.col1, Table_A.col2 = Table_B.col2 FROM Table_A AS Table_A INNER JOIN Table_B AS Table_B ON Table_A.id = Table_B.id WHERE Table_A.col3 = 'cool';</code>
Penjelasan Terperinci
UPDATE Table_A
: Menentukan jadual sasaran untuk kemas kini.SET
: Berikan nilai daripada Table_B
kepada lajur yang ditentukan dalam Table_A
.FROM
: Mengenal pasti jadual yang terlibat dalam operasi kemas kini.INNER JOIN
: Pautan Table_A
dan Table_B
berdasarkan lajur biasa.ON
: Mentakrifkan syarat gabungan (lajur yang sepadan).WHERE
: Menapis baris yang dikemas kini berdasarkan keadaan tertentu.Contoh Praktikal
Bayangkan Table_A
dengan lajur id
, col1
, col2
dan col3
, dan Table_B
(berkemungkinan jadual sementara) yang mengandungi nilai yang dikemas kini untuk id
, col1
dan col2
.
Untuk mengemas kini Table_A
menggunakan data daripada Table_B
di mana col3
'sejuk', gunakan pertanyaan ini:
<code class="language-sql">UPDATE Table_A SET Table_A.col1 = Table_B.col1, Table_A.col2 = Table_B.col2 FROM Table_A INNER JOIN Table_B ON Table_A.id = Table_B.id WHERE Table_A.col3 = 'cool';</code>
Pertanyaan ini menyertai jadual pada lajur id
, mengemas kini col1
dan col2
dalam Table_A
hanya untuk baris dengan col3
sama dengan 'sejuk' dalam kedua-dua jadual. Ini memastikan bahawa hanya rekod yang sepadan dikemas kini.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengemas kini rekod SQL Server menggunakan data dari jadual lain melalui pernyataan pilih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!