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!