SQL 删除被其他表参照的记录,如果表里的一些记录会被其他表所参照的话,你想删除它们。考虑如下所示的 DEPT_ACCIDENTS
表,该表的每一行数据代表一起制造业生产事故。每一行都记录了发生事故的部门以及事故的类型。
SQL 删除被其他表参照的记录 问题描述
如果表里的一些记录会被其他表所参照的话,你想删除它们。考虑如下所示的 DEPT_ACCIDENTS
表,该表的每一行数据代表一起制造业生产事故。每一行都记录了发生事故的部门以及事故的类型。
对于发生了 3 件以上事故的部门,你希望从 EMP 表里删除掉这些部门的全部员工记录。
SQL 删除被其他表参照的记录 解决方案
使用子查询和聚合函数 COUNT
找出发生过 3 次以上事故的部门,然后再删除在上述部门工作的员工。
SQL 删除被其他表参照的记录 扩展知识
下面的子查询用于识别哪些部门发生过 3 次以上事故。
DELETE
语句会删除上述子查询返回的那些部门的全部员工(本例中只是部门编号等于 20 的部门)。