sql - SQL oracle - 根据多重条件更新一列
问题描述
我想根据多个条件更新记录。我的更新忽略了条件(并更新了 doctype = 7 的所有记录)。
UPDATE DOCUMENTS SET DOCTYPE = '2'
Where DOCTYPE IN (Select C.DOCTYPE
From
CLIENTS A,
AGREEMENTS B,
DOCUMENTS C
where
A.ID = B.CUSTOMERID
and B.ID = C.AGREEMENTID
and C.STATUS = 1
and B.STATUS = 1
and A.STATUS = 1
and C.DOCTYPE = '7')
但是选择本身会返回我想要的。我在更新中做错了什么?
解决方案
您需要根据 Documents.ID 进行过滤,尝试如下:
UPDATE DOCUMENTS SET DOCTYPE = '2'
Where ID IN (Select C.ID
From
CLIENTS A,
AGREEMENTS B,
DOCUMENTS C
where
A.ID = B.CUSTOMERID
and B.ID = C.AGREEMENTID
and C.STATUS = 1
and B.STATUS = 1
and A.STATUS = 1
and C.DOCTYPE = '7')
推荐阅读
- eclipse - Eclipse 的颜色主题问题
- angular - 如何通过单击动态创建的打开图层自定义控件的按钮打开 mat-menu?
- networking - HAproxy 单臂负载均衡
- javascript - 无法从 event.body 解构
- javascript - 如何使用 ES 模块通过 URL 导入?
- azure - 非 Azure API 的 Azure API 管理设置
- python - 提高步行速度
- javascript - 当我尝试使用 .keys() 时,我从 nodemon 收到“Joi.object.keys 不是函数”错误消息
- javascript - 如何使 ac-pushbutton(英雄卡的按钮)在 webchat botframework 中动态选择/单击时消失
- session - AbpSession - Nullable 对象必须有一个值