Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengemas kini Jadual dalam Kenyataan Multi-Join MySQL Apabila Ia Bukan Jadual Pertama?

Bagaimana untuk Mengemas kini Jadual dalam Kenyataan Multi-Join MySQL Apabila Ia Bukan Jadual Pertama?

DDD
DDDasal
2024-12-11 07:38:11512semak imbas

How to Update a Table in a MySQL Multi-Join Statement When It's Not the First Table?

Kemas kini Jadual dalam Penyata Multi-Join dalam MySQL

Mengemas kini jadual bercantum dalam MySQL boleh mencabar apabila jadual yang anda mahu kemas kini bukanlah yang pertama dalam rantaian gabungan. Artikel ini meneroka cara untuk mengatasi halangan ini menggunakan sintaks KEMASKINI yang tidak konvensional MySQL.

Sintaks Tidak Konvensional untuk Kemas Kini Berbilang Jadual

Bertentangan dengan sintaks Microsoft SQL Server, KEMASKINI MySQL dengan JOIN pernyataan tidak memerlukan menyatakan jadual untuk dikemas kini dalam klausa FROM. Sebaliknya, ia secara tersirat menggunakan jadual yang dinyatakan dalam klausa SET.

Contoh

Contoh yang disediakan cuba mengemas kini jadualB berdasarkan nilai daripada jadualA dan jadualC:

UPDATE tableB
FROM tableA
JOIN tableB ON a.a_id = b.a_id
JOIN tableC ON b.b_id = c.b_id
SET b.val = a.val+c.val
WHERE a.val > 10
AND c.val > 10;

Kunci Mata

  • Klausa SET menentukan jadualB sebagai jadual yang akan dikemas kini.
  • Klausa FROM ditinggalkan kerana ia tidak diperlukan dalam sintaks kemas kini berbilang gabungan MySQL.
  • SQL Standard tidak menyokong KEMASKINI dengan JOIN, dan MySQL dan Microsoft SQL Server telah melaksanakan sambungan mereka sendiri kepada standard sintaks.

Dengan mematuhi sintaks unik MySQL, pengguna boleh berjaya mengemas kini jadual yang digabungkan walaupun jadual sasaran bukanlah yang pertama dalam rantaian gabungan.

Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Jadual dalam Kenyataan Multi-Join MySQL Apabila Ia Bukan Jadual Pertama?. 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