Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mengemas kini Data Jadual Oracle Menggunakan Nilai daripada Jadual Lain?

Bagaimanakah Saya Boleh Mengemas kini Data Jadual Oracle Menggunakan Nilai daripada Jadual Lain?

Susan Sarandon
Lepaskan: 2025-01-22 02:52:13
asal
825 orang telah melayarinya

How Can I Update an Oracle Table's Data Using Values from Another Table?

Oracle SQL: Mengemas kini Data Jadual Menggunakan Nilai daripada Jadual Lain

Selalunya, pengurusan pangkalan data memerlukan mengemas kini satu data jadual dengan nilai yang diperoleh daripada yang lain. Mari kita ilustrasikan ini dengan dua contoh jadual:

Jadual 1:

<code>id    name    desc
-----------------------
1     a       abc
2     b       def
3     c       adf</code>
Salin selepas log masuk

Jadual 2:

<code>id    name    desc
-----------------------
1     x       123
2     y       345</code>
Salin selepas log masuk

Matlamat kami adalah untuk mengemas kini lajur Table 1 dan name dengan data daripada desc, sepadan pada lajur Table 2. Hasil yang diinginkan:id

Jadual 1 (Dikemas kini):

<code>id    name    desc
-----------------------
1     x       123
2     y       345
3     c       adf</code>
Salin selepas log masuk
Oracle SQL menawarkan kaedah yang cekap untuk jenis kemas kini berkorelasi ini:

Kaedah 1: Subkueri Berkaitan

Pendekatan ini menggunakan subkueri berkorelasi dalam pernyataan

:UPDATE

<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>
Salin selepas log masuk
Pertanyaan ini mengemas kini setiap baris dalam

dengan Table 1 yang sepadan wujud dalam id.Table 2

Kaedah 2: Menggunakan Ungkapan Jadual Biasa (CTE)

Sebagai alternatif, jika gabungan mencipta paparan terpelihara kunci, CTE menyediakan penyelesaian yang lebih bersih:

<code class="language-sql">UPDATE (SELECT t1.id, 
               t1.name name1,
               t1.desc desc1,
               t2.name name2,
               t2.desc desc2
          FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id)
   SET name1 = name2,
       desc1 = desc2;</code>
Salin selepas log masuk
Kaedah ini membina pandangan sementara (menggunakan CTE) menggabungkan medan yang berkaitan daripada kedua-dua jadual, kemudian melakukan kemas kini pada paparan ini.

Kedua-dua kaedah secara berkesan mengemas kini

berdasarkan data dalam Table 1, menunjukkan teknik fleksibel untuk manipulasi data dalam Oracle SQL.Table 2

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengemas kini Data Jadual Oracle Menggunakan Nilai daripada Jadual Lain?. 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