Rumah > pangkalan data > tutorial mysql > Bagaimana cara melakukan pertanyaan kemas kini Oracle dengan gabungan dalaman?

Bagaimana cara melakukan pertanyaan kemas kini Oracle dengan gabungan dalaman?

Barbara Streisand
Lepaskan: 2025-01-25 04:47:14
asal
178 orang telah melayarinya

How to Correctly Perform an Oracle UPDATE Query with an INNER JOIN?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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