Mengemas kini Jadual SQL Berdasarkan Padanan Nama Pengguna: Pendekatan Cekap
Bayangkan anda mempunyai dua jadual SQL, table_a
dan table_b
, kedua-duanya mengandungi lajur user_name
. Matlamatnya adalah untuk menyalin data daripada lajur tertentu dalam table_b
ke lajur yang sepadan dalam table_a
, hanya untuk baris di mana nama pengguna sepadan.
Pertanyaan SQL Dioptimumkan
Berikut ialah pernyataan SQL yang berkesan untuk mencapai pemindahan data ini:
<code class="language-sql">UPDATE table_a SET column_a_1 = (SELECT table_b.column_b_1 FROM table_b WHERE table_b.user_name = table_a.user_name), column_a_2 = (SELECT table_b.column_b_2 FROM table_b WHERE table_b.user_name = table_a.user_name) WHERE EXISTS (SELECT 1 FROM table_b WHERE table_b.user_name = table_a.user_name);</code>
Pertanyaan ini beroperasi seperti berikut:
column_a_1
dalam table_a
dengan nilai daripada column_b_1
dalam table_b
, memadankan baris berdasarkan user_name
.column_a_2
dalam table_a
menggunakan nilai yang sepadan daripada column_b_2
dalam table_b
.EXISTS
memastikan kemas kini hanya berlaku untuk entri user_name
yang terdapat dalam kedua-dua jadual, mengelakkan ralat.Untuk prestasi optimum, pastikan anda mempunyai indeks pada lajur user_name
dalam kedua-dua table_a
dan table_b
. Pengindeksan ini meningkatkan kelajuan dan kecekapan pertanyaan dengan ketara.
Atas ialah kandungan terperinci Bagaimana untuk Menyalin Data dengan Cekap Antara Jadual SQL Berdasarkan Padanan Nama Pengguna?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!