根据第二个表中的条件更新表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据第二个表中的条件更新表相关的知识,希望对你有一定的参考价值。

我试图根据另一个表中的选择标准更新一个表。我的SQL是

update
  hshed
set
  oaeiin = 'Y',
  OAEIND = '170201'
from
  hshed
  join cusms on oacono = cmcono
  and oacsno = cmcsno
where
  cmtpid like 'OB10%'
  and oainvd > 180120
  and oaeiin = 'N'

但是,我收到了一个错误

 Keyword FROM not expected. Valid tokens: USE SKIP WAIT WITH WHERE. 

我不知道如何根据第二个表中的条件更新表,或者如何使用连接。这是在DB2数据库中使用SQL。

我试图寻找一个没有成功的解决方案。

任何帮助表示赞赏。

答案

我认为这里的主要问题是DB2不支持您正在使用的更新连接语法。一种可能的解决方法可能是使用EXISTS子句来处理您想要的相同逻辑:

UPDATE
    hshed
SET
    oaeiin = 'Y',
    OAEIND = '170201'
WHERE
    EXISTS (SELECT 1 FROM cusms WHERE oacono = cmcono) AND
    EXISTS (SELECT 1 FROM cusms WHERE oacsno = cmcsno) AND
    cmtpid LIKE 'OB10%' AND
    oainvd > 180120 AND
    oaeiin = 'N';

Here is a link到一个很好的Stack Overflow问题一般讨论这个问题。

以上是关于根据第二个表中的条件更新表的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL:我想用另一个表中的值更新表中的所有行,其中第一个表中的值等于第二个表

将第二个表中的第二个(条件)结果添加到 SQL 查询

如何在 EF / EF Core 中的第二个表上实现具有某些条件的左连接?

Haversine 公式,PHP,如果条件适用,则添加到第二个表中

sql server 2000返回在第一个表中但不在第二个表中的数据

Laravel 连接 2 个表,第一个表中的一个数据和第二个表中的多行