带内部连接的 DB2 删除

DB2 Delete with Inner Joins

正在尝试从 table 中删除其他 table 中有匹配记录的地方。

我试过这个的不同变体,但是这个 returns:

SQL Error [42601]: [SQL0199] Keyword INNER not expected. Valid tokens: USE SKIP WAIT WITH FETCH LIMIT ORDER WHERE OFFSET.

它基本上是一个跨库/跨数据库,但不能让 DB2 一起玩。 Select 工作得很好,如果我用 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'
             );