Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Kemas Kini Berbilang Jadual MySQL Secara serentak Menggunakan LEFT JOIN?

Bagaimanakah Saya Boleh Kemas Kini Berbilang Jadual MySQL Secara serentak Menggunakan LEFT JOIN?

Linda Hamilton
Linda Hamiltonasal
2024-12-06 07:10:12486semak imbas

How Can I Update Multiple MySQL Tables Simultaneously Using LEFT JOIN?

Mengemas kini Berbilang Jadual MySQL Menggunakan LEFT JOIN

Dalam MySQL, adalah mungkin untuk mengemas kini baris secara serentak merentas berbilang jadual menggunakan pernyataan LEFT JOIN. Ini boleh berguna apabila mengemas kini medan dalam satu jadual berdasarkan hasil gabungan dengan jadual lain.

Pertimbangkan senario berikut: Katakan kita mempunyai dua jadual, T1 dan T2, dan kita mahu mengemas kini semua baris dalam T1 yang tidak mempunyai rekod yang sepadan dalam T2. Untuk mencapai matlamat ini, kita boleh menggunakan sintaks berikut:

UPDATE T1
LEFT JOIN T2
ON T1.id = T2.id
SET T1.col1 = newvalue
WHERE T2.id IS NULL;

Dalam pernyataan ini, operasi LEFT JOIN mencipta set hasil sementara yang merangkumi semua baris daripada T1, sama ada ia sepadan dengan baris dalam T2 atau tidak. Klausa WHERE kemudian menapis set hasil untuk hanya memasukkan baris yang baris yang sepadan dalam T2 tidak wujud (iaitu, di mana T2.id IS NULL). Akhir sekali, klausa SET mengemas kini medan yang ditentukan (T1.col1) kepada nilai yang diingini.

Perlu diperhatikan bahawa untuk pernyataan SELECT, menggunakan sintaks NOT IN / NOT EXISTS boleh menjadi lebih cekap daripada LEFT JOIN. Walau bagaimanapun, MySQL tidak membenarkan penggunaan jadual sasaran dalam subkueri dalam pernyataan KEMASKINI, jadi sintaks LEFT JOIN kekal diperlukan untuk senario khusus ini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Kemas Kini Berbilang Jadual MySQL Secara serentak Menggunakan LEFT JOIN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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