删除 SQL (Access) 中与相关数据相关的查询?

Delete query in SQL (Access) in conjuction with dependent data?

我知道这是一个非常基本的问题,但我做不出来。刚开始学习更多关于数据库的知识。我有两个表:tblFoodAllowance 和 tblTravelDays。

tblFoodAllowance 由 ID、tripID、dateDay、costs 组成。 tblTravelDay保存了我出差的所有日子:ID,dateDay.

我正在寻找 SQL 中的删除查询以在 MS Access 中使用,它执行此操作:从 tblFoodAllowance 中删除所有内容,其中 tripID 是 xy(例如 1)并且 tblFoodAllowance.dateDay 不在列表中的 tblTravelDates。我怎样才能做到这一点?

我尝试了多种方法,但不是语法错误就是结果错误。感谢您的帮助。

我猜是这样的:

DELETE * FROM tblFoodAllowance WHERE tblFoodAllowance.tripID = [tripID] and ()

考虑使用 not exists 和相关子查询。有点不清楚究竟是哪些列连接了两个表,但思路是:

delete from tblFoodAllowance 
where 
    tripID = 1
    and not exists (
        select 1
        from tblTravelDay
        where tblTravelDay.dateDay = tblFoodAllowance.dateDay
    )

您可以使用 delete:

delete from tblFoodAllowance
    where tripID = @xy and
          not exists (select 1
                      from tblTravelDates
                      where tblTravelDates.tripId = tblFoodAllowance.tripId and
                            tblTravelDates.dateDay = tblFoodAllowance.dateDay
                     );