Mengemas kini Jadual yang Melibatkan Beberapa Cantuman dalam MySQL
Apabila bekerja dengan pertanyaan pangkalan data kompleks yang melibatkan berbilang cantuman, mengemas kini jadual tertentu boleh menimbulkan cabaran. Walaupun susunan gabungan mungkin tidak memberi kesan yang ketara kepada prestasi, ia boleh menjejaskan kemudahan menulis dan membaca pertanyaan.
Pertimbangkan contoh berikut, di mana matlamatnya adalah untuk mengemas kini jadual tableB:
UPDATE b FROM tableA a JOIN tableB b ON a.a_id = b.a_id JOIN tableC c ON b.b_id = c.b_id SET b.val = a.val+c.val WHERE a.val > 10 AND c.val > 10;
Dalam pertanyaan di atas, mengemas kini jadualB melibatkan jadual tableA dan tableC melalui cantuman. Walau bagaimanapun, tableB bukanlah jadual pertama yang disebut dalam klausa FROM.
Tidak seperti Microsoft SQL Server, MySQL mengendalikan kemas kini berbilang jadual secara berbeza. Sintaks UPDATE tidak memerlukan menyatakan jadual untuk dikemas kini secara eksplisit. Sebaliknya, klausa SET secara tersirat mengemas kini jadual yang mengandungi lajur yang diberi nilai baharu.
Untuk mencapai kemas kini yang diingini menggunakan sintaks MySQL, ubah suai pertanyaan seperti berikut:
UPDATE tableA a JOIN tableB b ON a.a_id = b.a_id JOIN tableC c ON b.b_id = c.b_id SET b.val = a.val + c.val WHERE a.val > 10 AND c.val > 10;
KEMASKINI MySQL sintaks membolehkan anda mengemas kini jadual yang bukan yang pertama dalam klausa FROM dengan menggunakan nama lajur dalam SET fasal.
Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Jadual dengan Cekap dalam MySQL Menggunakan Pelbagai Gabungan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!