Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengemas kini Jadual Oracle Menggunakan Subkueri Berkorelasi?

Bagaimanakah Saya Boleh Mengemas kini Jadual Oracle Menggunakan Subkueri Berkorelasi?

Linda Hamilton
Linda Hamiltonasal
2025-01-22 02:56:10864semak imbas

How Can I Update an Oracle Table Using Correlated Subqueries?

Menggunakan subkueri berkorelasi untuk mengemas kini data jadual dalam Oracle SQL

Apabila data jadual perlu dikemas kini daripada jadual lain berdasarkan ID yang sepadan, Oracle SQL menyediakan mekanisme berkuasa yang dipanggil kemas kini berkaitan. Pendekatan ini membolehkan kemas kini lancar dengan menggunakan subkueri dalam pernyataan SQL.

Mari kita lihat contoh di mana kita akan mengemas kini Jadual 1 dengan data daripada Jadual 2 berdasarkan ID yang sepadan.

<code>Table 1:
id    name    desc
-----------------------
1     a       abc
2     b       def
3     c       adf

Table 2:
id    name    desc
-----------------------
1     x       123
2     y       345</code>

Untuk mencapai kemas kini ini dalam Oracle SQL, kami boleh menggunakan pertanyaan berikut:

<code class="language-sql">UPDATE table1 t1
   SET (name, desc) = (SELECT t2.name, t2.desc
                         FROM table2 t2
                        WHERE t1.id = t2.id)
 WHERE EXISTS (
    SELECT 1
      FROM table2 t2
     WHERE t1.id = t2.id )</code>

Pertanyaan ini menggunakan subkueri berkorelasi untuk mengekstrak data padanan daripada Jadual 2 berdasarkan ID dalam Jadual 1. Klausa WHERE memastikan bahawa hanya baris dalam Jadual 1 yang mempunyai baris yang sepadan dalam Jadual 2 dikemas kini.

Sebagai alternatif, jika hasil gabungan ialah paparan memelihara kunci, anda juga boleh menggunakan pertanyaan berikut:

<code class="language-sql">UPDATE (SELECT t1.id, 
               t1.name name1,
               t1.desc desc1,
               t2.name name2,
               t2.desc desc2
          FROM table1 t1,
               table2 t2
         WHERE t1.id = t2.id)
   SET name1 = name2,
       desc1 = desc2</code>

Pertanyaan ini melakukan kemas kini dalam jadual terbitan, dengan data yang sepadan daripada kedua-dua jadual dicantumkan oleh lajur ID. Klausa SET seterusnya mengemas kini lajur dalam Jadual 1 dengan nilai dari Jadual 2.

Dengan menggunakan teknologi kemas kini yang berkaitan ini, kami boleh mengemas kini data dengan cekap dalam Oracle SQL, memastikan penyegerakan yang lancar dan konsistensi data antara jadual.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengemas kini Jadual Oracle Menggunakan Subkueri Berkorelasi?. 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