微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带内部联接的 DB2 删除

如何解决带内部联接的 DB2 删除

试图从其他表中存在匹配记录的表中删除

我尝试了不同的变体,但这个变体又回来了:

sql 错误 [42601]:[sql0199] 不需要关键字 INNER。有效令牌:使用 SKIP WAIT WITH FETCH LIMIT ORDER WHERE OFFSET。

它基本上是一个跨库/跨数据库,但不能让 DB2 发挥作用。选择工作得很好,如果我用 SELECT *

替换删除
 DELETE a
  FROM INHOUSE.ANDREWCAT a
   INNER JOIN ERPLIB.SRBPRG b ON
   a.PSPRDC  = b.PGPRDC
   INNER JOIN ERPLIB.SRBRSD  c 
   ON 
    b.PGIRGP = c.RDSRTY 
   AND c.RDTOFI = a.EPNUM AND c.RDSRTY = c.RDWHAT 
   AND a.EPNUM = 'REM104'

解决方法

DB2 不支持您使用的语法。

相反:

DELETE INHOUSE.ANDREWCAT a
WHERE EXISTS (SELECT 1
              FROM ERPLIB.SRBPRG b JOIN
                   ERPLIB.SRBRSD  c 
                   ON b.PGIRGP = c.RDSRTY
              WHERE a.PSPRDC  = b.PGPRDC AND
                    c.RDTOFI = a.EPNUM AND
                    c.RDSRTY = c.RDWHAT AND
                    a.EPNUM = 'REM104'
             );

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。