删除 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
);
我知道这是一个非常基本的问题,但我做不出来。刚开始学习更多关于数据库的知识。我有两个表: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
);