Kemas kini data Oracle dengan Inner Join
Ralat "SQL Not Not Ended" yang anda hadapi adalah kerana saya menggunakan sintaks MySQL dan bukannya sintaks Oracle. Oracle mengemas kini data dan menggunakan kaedah gabungan dalaman yang sedikit berbeza.
Untuk membetulkan ralat ini, anda boleh mengubah suai pertanyaan seperti berikut:
Dalam pertanyaan ini, sub -query dalam klan set dilaksanakan untuk setiap baris dalam Jadual1, dan nilai nilai dikemas kini mengikut baris yang sepadan dalam Jadual2. Di mana klausa memastikan bahawa mereka hanya mengemas kini garis.
<code class="language-sql">UPDATE table1 SET table1.value = ( SELECT table2.CODE FROM table2 WHERE table1.value = table2.DESC ) WHERE table1.UPDATETYPE = 'blah' AND EXISTS ( SELECT table2.CODE FROM table2 WHERE table1.value = table2.DESC );</code>
atau, anda boleh mencuba kaedah berikut, bergantung kepada kemas kini pandangan yang berkaitan:
Kaedah ini menggunakan pandangan pandangan dalaman untuk melaksanakan sambungan, dan kemudian gunakan hasil untuk mengemas kini jadual asas.
<code class="language-sql">UPDATE ( SELECT table1.value AS OLD, table2.CODE AS NEW FROM table1 INNER JOIN table2 ON table1.value = table2.DESC WHERE table1.UPDATETYPE = 'blah' ) t SET t.OLD = t.NEW;</code>
Atas ialah kandungan terperinci Bagaimana cara melakukan pertanyaan kemas kini Oracle dengan gabungan dalaman?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!