Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengemas kini Data Jadual Oracle dari Jadual Lain Menggunakan 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!