Di Oracle, gunakan gabungan dalaman untuk melaksanakan pertanyaan kemas kini dengan betul
Pertanyaan berikut di MySQL dapat dilaksanakan dengan jayanya:
<code class="language-sql">UPDATE table1 INNER JOIN table2 ON table1.value = table2.DESC SET table1.value = table2.CODE WHERE table1.UPDATETYPE='blah';</code>
penyelesaian
<code>SQL错误:ORA-00933:SQL命令未正确结束 00933. 00000 - "SQL command not properly ended"</code>
Sintaks yang digunakan dalam pertanyaan tidak sah di Oracle. Untuk memenuhi keputusan yang diharapkan, anda boleh menggunakan salah satu kaedah berikut: Kaedah pertama
Kaedah ini menggunakan sub -query untuk mendapatkan nilai kemas kini Table1.Value mengikut syarat sambungan. Ia memastikan bahawa hanya garis sepadan dikemas kini. kaedah kedua
<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>
Kaedah ini menggunakan gambarajah hubungan dalaman yang dikemas kini untuk melaksanakan kemas kini. Ia memerlukan Oracle untuk berfikir bahawa pandangan hubungan dalaman dikemas kini, bergantung kepada peraturan tertentu.
Atas ialah kandungan terperinci Bagaimana cara membuat pertanyaan kemas kini dengan betul dengan gabungan dalam di Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!