在 Oracle 中更新连接查询

Posted

技术标签:

【中文标题】在 Oracle 中更新连接查询【英文标题】:Updating joint query in Oracle 【发布时间】:2020-10-09 10:03:12 【问题描述】:

我正在尝试根据用户表更新交易表上的名称,但是由于我们有太多交易,我不希望我的查询更新每笔交易。只有满足以下条件的人:

UPDATE TRADES TD
SET NAME =
  (SELECT AG.NAME
   FROM USERS AG
   INNER JOIN TRADES TD
  ON TD.NAME NOT IN ('None', 'Not active')
  AND AG.NAME <> TD.NAME
  AND AG.UID = TD.TID);

上述更新查询更新所有符合上述条件的交易。 但是如果我检查选择查询它只返回 1000 计数 如何修复此查询以仅更新所需的 1000 条记录,而不是交易表中的所有名称?

【问题讨论】:

【参考方案1】:

认为你想要一个where 子句:

update trades td
set name = (select ag.name from users ag where ag.uid = td.tid)
where 
    td.name not in ('none', 'not active')
    and td.name <> (select ag.name from users ag where ag.uid = td.tid)

【讨论】:

以上是关于在 Oracle 中更新连接查询的主要内容,如果未能解决你的问题,请参考以下文章

oracle左连接查询和右连接查询随便举个例子谢谢!

Oracle SQL:更新连接

java连接Orcale数据库并查询插入删除数据

oracle 多表连接查询

mybatis查询oracle数据库数据异常

Oracle多表查询,四种连接方式