sql - 如何使用 JOIN 在 Access 中指定应从中删除记录的表?
问题描述
我有一个表和一个查询,qryAktuelleSchülerbilder
包含tblSchülerbilder
. 我的目标是删除tblSchülerbilder
其中不存在的所有记录qryAktuelleSchülerbilder
。我可以得到这些记录
SELECT tblSchülerbilder.*, qryAktuelleSchülerbilder.ID
FROM tblSchülerbilder
LEFT JOIN qryAktuelleSchülerbilder
ON tblSchülerbilder.ID = qryAktuelleSchülerbilder.ID
WHERE qryAktuelleSchülerbilder.ID Is Null;
当我现在切换到删除查询时,Access 中的设计视图看起来很好(我真的不知道,此时它对 SQL 视图做了什么),它显示为tblSchülerbilder.*
Delete:From
和删除:和标准:。但是当我执行查询时,它给了我.ID
qryAktuelleSchülerbilder
Where
Is Null
Specify the table containing the records you want to delete. (Error 3128)
我不知道再放哪里tblSchülerbilder
,因为它已经设置为删除。网上的文章没有帮助,因为我已经tblSchülerbilder.*
在select语句中指定了。
解决方案
你可以这样做NOT IN
:
DELETE FROM tblSchülerbilder
WHERE ID NOT IN (SELECT ID FROM qryAktuelleSchülerbilder)
或与NOT EXISTS
:
DELETE FROM tblSchülerbilder AS t
WHERE NOT EXISTS (
SELECT 1 FROM qryAktuelleSchülerbilder AS q
WHERE q.ID = s.ID
)
推荐阅读
- python-3.x - 如何并行运行 bash 脚本
- javascript - 无响应的 UI 元素在调整大小后变得有响应
- javascript - 如何使用 aws ec2 浏览器连接到 http://localhost:4200
- javascript - 在 Salesforce(兔子洞)上检查时,阴影 DOM 未显示在带有阴影根的自定义元素中
- performance - 服务器可以从负载均衡器处理多少个 TCP 连接
- node.js - 如何减少 Ionic 4 编译时间
- javascript - POST 后获取响应
- tsql - MS Access SQL Case When 表达式
- android - 编辑通话记录名称
- java - 使用接口类型访问类变量