【问题标题】:How do I specify the table from which a record should be deleted in Access using JOIN?如何使用 JOIN 在 Access 中指定应从中删除记录的表?
【发布时间】:2020-04-08 15:05:38
【问题描述】:

我有一个表和一个查询,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 :FromIDqryAktuelleSchülerbilder,删除:Where 和标准:Is Null。但是当我执行查询时,它给了我Specify the table containing the records you want to delete. (Error 3128)

我不知道再把tblSchülerbilder放在哪里,因为它已经设置为删除。网上的文章没有帮助,因为我已经在select语句中指定了tblSchülerbilder.*

【问题讨论】:

    标签: sql ms-access sql-delete ms-access-2016


    【解决方案1】:

    您可以使用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
    )
    

    【讨论】:

      猜你喜欢
      • 2016-01-12
      • 1970-01-01
      • 1970-01-01
      • 2019-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      相关资源
      最近更新 更多