DB2删除内在连接

问题描述 投票:0回答:2
从其他表中有匹配记录的表格中删除。 我尝试了这种不同的变体,但是这个返回:

SQL错误[42601]:[SQL0199]关键字内在不期望。有效令牌:使用skip等待与fetch限制顺序在偏移的位置。

它基本上是一个跨库 /交叉数据库,但无法让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不支持您使用的语法。
Instead:
sql db2 sql-delete
2个回答
1
投票

我的db2是v11.5.7 假设唯一的是目标表的pk

Convert

DELETE FROM targetTable tt
INNER JOIN referenceTable rt ON rt.fk = tt.fk
AND ...
AND tt.UNIQUEID = rt.UNIQUEID 

0
投票

DELETE FROM targetTable x WHERE EXISTS (SELECT * FROM targetTable INNER JOIN referenceTable rt ON ON rt.fk = tt.fk AND ... AND tt.UNIQUEID = rt.UNIQUEID);

P.S参考

Https://www.ibm.com/docs/en/i/7.4?topic =subqueries-example-corlecame-correlated-subquery-ingquery-in-delete-netement

    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.