sql - 在 db2 中使用多个内部联接进行更新

标签 sql db2

我有以下查询

UPDATE mainList
INNER JOIN custToList D
    ON l.custToList_id = d.custToList_id
INNER JOIN dealert dt
    ON d.dealert_id = dt.dealert_id
INNER JOIN markList m
    on m.markList_id = d.markList_id
SET EXPIRATION_TIMESTAMP = CURRENT_TIMESTAMP
where dt.custNum = 2;

但是它告诉我第一个“内部”无效? db2 中的更新不能进行内连接吗?

最佳答案

我认为 DB2 不支持 UPDATE 中的 JOIN。在您的情况下,通过将过滤移至 WHERE 子句即可轻松解决此问题:

UPDATE mainList l
    SET EXPIRATION_TIMESTAMP = CURRENT_TIMESTAMP
WHERE EXISTS (SELECT 1
              FROM custToList D INNER JOIN
                   dealert dt
                   ON d.dealert_id = dt.dealert_id INNER JOIN
                   markList m
                   ON m.markList_id = d.markList_id
              WHERE l.custToList_id = d.custToList_id AND dt.custNum = 2
             );

关于sql - 在 db2 中使用多个内部联接进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52338836/

相关文章:

sql - 如何在SQL中找到范围内的差距

database - DB2 通信错误

java - 使用 jdbc 进行 db2 查询时出错

db2 - 对名称中带有点 "."的 DB2 文件运行 SQL 查询?

java - IBM DB2 - 查找我的数据库托管 JDBC 连接的位置?

mysql - SQL,当一​​列的值为 A 或 B 时查找条目

mysql - 使用有效但失败,为什么?

mysql - 使用 MySQL 将单元格值转换为列

java - 如何猜测或确定 SQL 标识字段并避免重复

db2 - 无法在表空间 "XXXX"中分配新页...但它有 250 兆,而且我只运行 DDL