如何删除所有相关记录?

问题描述 投票:1回答:2

我正在尝试删除一个用户以及与他绑定的所有相关记录,而且我不知道如何使用SQL INNER JOIN语句,有什么方法可以采用以下方式执行某些操作:

DELETE * FROM tblUsers, tblEnrollment, tblLinkActivities, tblFullSchedule, tblSchedule, tblLinkMedical
WHERE [IDUser] = ?

(我知道这是完全错误的)

我的关系图看起来像这样:

Relationships

使用6个删除命令会更容易吗?或者有另一个命令吗?谢谢你...

sql ms-access inner-join
2个回答
1
投票

由于您已经定义了与引用完整性的关系,因此只需为每个关系设置Cascade Delete Related Records选项。

https://support.office.com/en-us/article/create-edit-or-delete-a-relationship-dfa453a7-0b6d-4c34-a128-fdebc7e686af#__bmcascade

这样您只需要从tblUsers中删除,所有相关记录都会自动删除。

如果您不能或不想这样做,则需要在删除主记录之前在相关表上运行单独的删除查询。


0
投票

在单个sql查询中,无法同时删除多个表中的记录。您需要编写多个删除语句。更好的方法是编写一个包含所有表的内部查询,并在每个表中删除。例如:从部门删除DEPTNO IN(从emp a中选择a.DEPTNO,其中a.DEPTNO = b.DEPTNO和a.DEPTNO = 10的部分)从emp中删除DEPTNO IN(从emp a中选择a.DEPTNO, dept b其中a.DEPTNO = b.DEPTNO

© www.soinside.com 2019 - 2024. All rights reserved.