请教SQL语句改写

在ORACLE中:
select A.flag from A inner join B on A.cardno=B.cardno and (A.settdate-B.stpdate)<4
where A.SETTDATE='20190730' and and A.flag='0'
现在想改成UPDATE,
我的想法是:update A.flag inner join B on A.cardno=B.cardno and (A.settdate-B.stpdate)<4 SET a.flag='1' where A.SETTDATE='20190730' and and A.flag='0'
似乎这个只能在mySQL里面运行?(没试验过)
如何在ORACLE中运行呢

第1个回答  2019-08-07
update a
set a.a.flag = '1'
where exists (select 1
from b
where a.cardno = b.cardno
and a.settdate - b.stpdate < 4
and a.settdate = to_date('2019-07-30', 'yyyy-mm-dd')
and a.flag = '0');
第2个回答  2019-08-08
select A.flag from A inner join B on A.cardno=B.cardno and (A.settdate-B.stpdate)<4
where A.SETTDATE='20190730' and and A.flag='0'

update A set flag = '1'
from A aa inner join B on aa.cardno=B.cardno and (aa.settdate-B.stpdate)<4
where aa.SETTDATE='20190730' and and aa.flag='0'
给下面那个aa取个别名别跟上面那个一样,然后照抄select from 后面部分就好了,前面加个要update 的东西本回答被网友采纳
第3个回答  2019-08-06
不是这么写的啊,老兄
相似回答