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!