Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menyalin Data Dengan Cekap Antara Jadual SQL Berdasarkan Nama Pengguna Padanan?
Memindahkan Data Antara Jadual SQL Dengan Cekap Menggunakan Nama Pengguna Padanan
Pangkalan data anda mengandungi dua jadual, table_a
dan table_b
, setiap satu dengan lajur user_name
. Objektifnya adalah untuk menyalin data daripada column_b_1
dan column_b_2
dalam table_b
ke column_a_1
dan column_a_2
dalam table_a
, masing-masing, memadankan baris berdasarkan nilai user_name
yang sama.
Dengan mengandaikan indeks yang sesuai disediakan untuk prestasi optimum, satu pernyataan SQL boleh mencapai ini:
<code class="language-sql">UPDATE table_a SET column_a_1 = (SELECT b.column_b_1 FROM table_b b WHERE b.user_name = table_a.user_name), column_a_2 = (SELECT b.column_b_2 FROM table_b b WHERE b.user_name = table_a.user_name) WHERE EXISTS (SELECT 1 FROM table_b b WHERE b.user_name = table_a.user_name);</code>
Pertanyaan ini menggunakan subkueri berkorelasi untuk mengambil nilai yang betul daripada table_b
untuk setiap baris dalam table_a
. Subkueri EXISTS
memastikan kemas kini hanya berlaku untuk nama pengguna yang terdapat dalam kedua-dua jadual.
Untuk set data yang sangat besar yang mempunyai prestasi kritikal, pertimbangkan strategi alternatif ini:
JOIN
untuk menggabungkan baris yang berkaitan daripada table_a
dan table_b
.table_a
.table_a
.Walaupun kaedah ini melibatkan lebih banyak langkah, kaedah ini selalunya memberikan prestasi unggul dengan set data yang luas.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyalin Data Dengan Cekap Antara Jadual SQL Berdasarkan Nama Pengguna Padanan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!