Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menyalin Data Dengan Cekap Antara Jadual SQL Berdasarkan Nama Pengguna Padanan?

Bagaimanakah Saya Boleh Menyalin Data Dengan Cekap Antara Jadual SQL Berdasarkan Nama Pengguna Padanan?

Patricia Arquette
Lepaskan: 2025-01-15 08:53:49
asal
292 orang telah melayarinya

How Can I Efficiently Copy Data Between SQL Tables Based on Matching Usernames?

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>
Salin selepas log masuk

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:

  1. Bina jadual sementara menggunakan JOIN untuk menggabungkan baris yang berkaitan daripada table_a dan table_b.
  2. Alih keluar data sedia ada daripada table_a.
  3. Masukkan data daripada jadual sementara ke dalam 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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan