我有一个table1 (PR_NOTES),在这里我试图删除table2 (DW_ECC_SAP_EBAN)中没有找到的所有记录。我尝试过几种方法,这段代码是我想要的最接近的方法(至少没有显示错误):
DELETE *
FROM PR_NOTES
WHERE NOT EXISTS (SELECT
DW_ECC_SAP_EBAN.BANFN,
DW_ECC_SAP_EBAN.EKGRP,
DW_ECC_SAP_EBAN.FRGZU,
DW_ECC_SAP_EBAN.MENGE,
DW_ECC_SAP_EBAN.BSMNG,
DW_ECC_SAP_EBAN.LOEKZ,
DW_ECC_SAP_EBAN.EBAKZ,
DW_ECC_SAP_EBAN.PSTYP
FROM (DW_ECC_SAP_EBAN
LEFT JOIN PR_NOTES
ON DW_ECC_SAP_EBAN.BANFN = PR_NOTES.BANFN));为了测试这段代码,我创建了一个我知道在table2中找不到的假记录:

问题是,没有任何记录被删除:

提前谢谢你的帮助。
发布于 2017-05-18 15:24:42
我会这样做的。
DELETE FROM PR_NOTES
WHERE PR_NOTES.BANFN NOT IN (SELECT DW_ECC_SAP_EBAN.BANFN FROM DW_ECC_SAP_EBAN)我正在从BANFN中选择所有的DW_ECC_SAP_EBAN,并告诉PR_NOTES删除不在列表中的记录。因此,如果PR_NOTES.BANFN不在DW_ECC_SAP_EBAN.BANFN中,那么它将从PR_NOTES中删除
https://stackoverflow.com/questions/44051557
复制相似问题