Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengemas kini Data Jadual Oracle dari Jadual Lain Menggunakan SQL?

Bagaimana untuk Mengemas kini Data Jadual Oracle dari Jadual Lain Menggunakan SQL?

Patricia Arquette
Patricia Arquetteasal
2025-01-22 03:03:13355semak imbas

How to Update Oracle Table Data from Another Table Using SQL?

Menggunakan SQL untuk mengemas kini data jadual Oracle daripada jadual lain

Dalam pengurusan pangkalan data hubungan, selalunya perlu untuk mengemas kini data dalam satu jadual menggunakan nilai dari jadual lain. Ini boleh dicapai menggunakan pernyataan SQL UPDATE.

Adegan:

Pertimbangkan dua jadual, Jadual 1 dan Jadual 2, yang mengandungi data berikut:

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

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

Sasaran:

Kemas kini Jadual 1 dengan nama dan lajur penerangan daripada Jadual 2 apabila lajur id dalam kedua-dua jadual sepadan. Keputusan yang dijangkakan adalah seperti berikut:

<code>表 1:
id    name    desc
-----------------------
1     x       123
2     y       345
3     c       adf</code>

Pilihan 1: Kemas kini berkaitan

Dalam Oracle SQL, kemas kini berkaitan tersedia:

<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>

Arahan:

Pertanyaan ini melakukan kemas kini pada jadual1, menggunakan subkueri untuk mendapatkan semula nama dan nilai desc yang sepadan daripada jadual2 berdasarkan id yang sepadan. Klausa WHERE EXISTS memastikan bahawa hanya baris dalam jadual1 yang mempunyai baris yang sepadan dalam jadual2 dikemas kini.

Pilihan 2: Kemas kini berasaskan JOIN

Dengan mengandaikan bahawa hasil yang dihasilkan oleh gabungan mengekalkan kunci, pernyataan kemas kini berikut boleh digunakan:

<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>

Arahan:

Pertanyaan ini melakukan kemas kini pada paparan gabungan, dengan berkesan mengemas kini nama dan lajur desc jadual1 kepada nilai yang dipadankan dengan id yang sepadan dalam jadual2.

Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Data Jadual Oracle dari Jadual Lain Menggunakan SQL?. 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