如何在与其他表联接时使用固定值更新Vertica中的表?

3

我在MySQL中有这个查询:

UPDATE table1 AS a
JOIN table2  AS b ON a.code=b.code
AND b.rating < 3
SET a.Status = 'Delisted';

在Vertica中使用时,我遇到了错误:“JOIN附近语法错误”。可以有人帮忙吗?谢谢。

为什么要标记两个不同的数据库系统? - Kermit
2个回答

5

不使用JOIN的情况下,尝试以下方法(Vertica足够聪明):

update table1 as a set status = 'delisted'
  from table2 as b
  where a.code = b.code and b.rating < 3;

更多信息请阅读此处


0
在Vertica中,语法稍有不同,您将需要使用EXISTS语句。
UPDATE table1
   SET Status = 'Delisted'
 WHERE EXISTS (select *
          from table1 a
          JOIN table2 b ON a.code = b.code
                       AND b.rating < 3);

在更新操作中允许使用JOINS。 希望这对您有所帮助。


存在井格并没有真正起作用,因为有多个代码符合标准。但是我使用了“where code in (select code from)”,现在它可以工作了。谢谢 - Arpit Srivastava

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接