如何根据SQL中给定的连接条件从表A中删除所有记录?

How to delete all records from the tableA based on the given join condition in SQL?

提问人:Calvin Le 提问时间:10/18/2023 最后编辑:Black catCalvin Le 更新时间:10/18/2023 访问量:51

问:

这是我用来填充记录的代码:

SELECT tableA.*
FROM tableA
INNER JOIN tableB
ON (tableA.CASE = tableB.case_id_txt)
AND (tableA.COMPANY = act_req_t.company_txt)
AND (tableA.[CLIENT ID] = tableB.client_id_txt)
WHERE (((tableB.status_txt)="Open"));

现在,我希望删除这些记录,而不是填充这些记录,但我下面的代码不起作用。它不断提示“无法从指定的表中删除”

DELETE tableA
FROM tableA
INNER JOIN tableB
ON (tableA.CASE = tableB.case_id_txt)
AND (tableA.COMPANY = tableB.company_txt)
AND (tableA.[CLIENT ID] = tableB.client_id_txt)
WHERE (((tableB.status_txt)="Open"));

问题出在哪里?

谢谢

SQL VBA格式

评论

2赞 Craig 10/18/2023
您使用的是什么 RDBMS/数据库引擎,用于执行查询的实际 VBA 代码示例在哪里?
0赞 Adrian Maxwell 10/18/2023
从表 A 中删除 A WHERE EXISTS ( SELECT 1 FROM tableB WHERE A.[CASE] = tableB.case_id_txt AND A.COMPANY = tableB.company_txt AND a.[CLIENT ID] = tableB.client_id_txt AND tableB.status_txt = 'Open' )
1赞 Adrian Maxwell 10/18/2023
如果将鼠标悬停在标签“sql”上,则会指出: 问题应包括代码示例、表结构、示例数据以及正在使用的 DBMS 实现(例如 MySQL、PostgreSQL、Oracle、MS SQL Server、IBM DB2 等)的标签。 请使用实际使用的 dbms 标记您的问题 - 这对您获得答案的速度有影响。
0赞 jarlh 10/18/2023
DELETE FROM ... JOIN ...是一种非标准语法。您使用的是哪种 dbms?另请注意,表有,而不是记录。
0赞 Calvin Le 10/18/2023
我正在使用 MS Access 查询来运行代码。我试过了这个,: 从表 A 中删除 A WHERE EXISTS ( SELECT 1 FROM tableB WHERE a.[CASE] = tableB.case_id_txt AND A.COMPANY = tableB.company_txt AND a.[CLIENT ID] = tableB.client_id_txt AND tableB.status_txt = 'Open' ) 它正在工作,但是,填充查询显示 2259 条记录,但在运行上述代码时,它只删除了 1986 条记录。谢谢

答: 暂无答案