Bagaimana untuk Mengemas kini Jadual dengan Cekap dalam MySQL Menggunakan Pelbagai Gabungan?

Barbara Streisand
Lepaskan: 2024-11-24 07:19:14
asal
152 orang telah melayarinya

How to Efficiently Update a Table in MySQL Using Multiple Joins?

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

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

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!

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