我正在尝试删除用户以及与他相关的所有相关记录,并且我不知道如何使用SQL INNER JOIN语句,有什么方法可以执行以下操作:
DELETE * FROM tblUsers, tblEnrollment, tblLinkActivities, tblFullSchedule, tblSchedule, tblLinkMedical
WHERE [IDUser] = ?
(我知道那是完全不正确的)
我的关系图如下:
使用6个删除命令会更容易吗?还是有另一个命令可以做到这一点?谢谢一堆。
答案 0 :(得分:1)
由于您已经定义了具有参照完整性的关系,因此只需为每个关系设置级联删除相关记录选项。
这样,您只需要从tblUsers中删除,所有相关记录就会自动删除。
如果您不能或不想这样做,则需要在删除主记录之前对相关表运行单独的删除查询。
答案 1 :(得分:0)
在单个sql查询中无法同时删除多个表中的记录。您需要编写多个delete语句。更好的方法是编写一个涉及所有表的内部查询,并在每个表中删除。 例如: 从DEPTNO IN的部门删除(从emp a中选择a.DEPTNO,在a.DEPTNO = b.DEPTNO和a.DEPTNO = 10的部门b中选择a.DEPTNO) 从emp中删除DEPTNO IN(从emp a中选择a.DEPTNO,在de.b中选择a.DEPTNO = b.DEPTNO