首页 >数据库 >mysql教程 >如何使用 INNER JOIN 正确执行 Oracle UPDATE 查询?

如何使用 INNER JOIN 正确执行 Oracle UPDATE 查询?

Barbara Streisand
Barbara Streisand原创
2025-01-25 04:47:14181浏览

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

使用 INNER JOIN 更新 Oracle 数据

您遇到的“SQL command not properly ended”错误是因为使用了 MySQL 语法而非 Oracle 语法。Oracle 更新数据并使用 INNER JOIN 的方法略有不同。

要修正此错误,您可以修改查询如下:

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

此查询中,SET 子句中的子查询针对 table1 中的每一行执行,根据 table2 中对应的行更新 value 值。WHERE 子句确保只更新匹配的行。

或者,您可以尝试以下方法,这取决于内联视图的可更新性:

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

此方法利用内联视图执行连接,然后使用结果更新基础表。

以上是如何使用 INNER JOIN 正确执行 Oracle UPDATE 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn