Menggunakan SQL untuk Mengemas kini Jadual Oracle dengan Data daripada Yang Lain
Oracle SQL menawarkan kaedah yang cekap untuk mengemas kini satu jadual dengan data daripada yang lain. Ini boleh dicapai menggunakan kemas kini berkorelasi atau sintaks alternatif.
Mari kita ilustrasikan dengan contoh jadual:
<code class="language-sql">Table 1: id | name | description ----------------------- 1 | a | abc 2 | b | def 3 | c | adf</code>
<code class="language-sql">Table 2: id | name | description ----------------------- 1 | x | 123 2 | y | 345</code>
Kaedah 1: Kemas Kini Subkueri Berkorelasi
Pendekatan ini menggunakan subkueri berkorelasi untuk mengambil data yang sepadan daripada Table 2
untuk setiap baris dalam Table 1
:
<code class="language-sql">UPDATE table1 t1 SET (name, description) = (SELECT t2.name, t2.description FROM table2 t2 WHERE t1.id = t2.id) WHERE EXISTS ( SELECT 1 FROM table2 t2 WHERE t1.id = t2.id );</code>
Klausa WHERE EXISTS
memastikan bahawa hanya baris dengan ID yang sepadan dalam kedua-dua jadual dikemas kini.
Kaedah 2: Sintaks Alternatif menggunakan Subkueri
Kaedah ini menggunakan subkueri untuk mencipta paparan sementara yang menggabungkan kedua-dua jadual, kemudian mengemas kini paparan ini:
<code class="language-sql">UPDATE (SELECT t1.id, t1.name name1, t1.description desc1, t2.name name2, t2.description desc2 FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id) SET name1 = name2, desc1 = desc2;</code>
Pendekatan ini memanfaatkan JOIN
untuk menggabungkan jadual dengan cekap. Kemas kini kemudiannya mengubah suai lajur yang dipilih (name1
, desc1
) berdasarkan lajur yang sepadan daripada Table 2
(name2
, desc2
). Lajur id
berfungsi sebagai kunci gabungan, memastikan kemas kini yang tepat kepada Table 1
.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengemas kini Jadual Oracle dengan Data daripada Yang Lain Menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!