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

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

Barbara Streisand
发布: 2025-01-25 04:47:14
原创
178 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板