我正在尝试更新表中的一列,使其自身进行联接以过滤出数据。
最初,这段代码是针对SQL Server的,我尝试对其进行更改,使其在Vertica中运行。我收到此错误:
ERROR: Syntax error at or near "inner"
update REPORT.sub_2018_ALL a
inner join REPORT.sub_2018_ALL p
on a.MBR_ID= p.MBR_ID and a.NAME = p.NAME
set RESULT = 'F'
where p.STATUS_REASON = 'Submitted' and a.REVIEW_RESULT is null
我不确定这是由于别名还是在表自身联接时无法更新。任何帮助表示赞赏。
答案 0 :(得分:0)
我认为您想要这样的东西:
update REPORT.sub_2018_ALL a
set RESULT = 'F'
where a.REVIEW_RESULT is null and
exists (select 1
from REPORT.sub_2018_ALL p
where a.MBR_ID = p.MBR_ID and
a.NAME = p.NAME and
p.STATUS_REASON = 'Submitted'
);
为记录起见,您的原始语法在SQL Server上不起作用,尽管可能在MySQL上起作用。