在 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 中更新连接查询的主要内容,如果未能解决你的问题,请参考以下文章