查找查询,删除父 id 与主记录不匹配的子表的所有记录。
主表
1. David
2. Fin
3. Lisa
子表
1. 100
1. 200
2. 200
2. 222
8. 100
9. 100
子表需要输出
1. 100
1. 200
2. 200
2. 222
想从子表中删除记录#8 和 9,因为它没有父 ID。
谢谢
查找查询,删除父 id 与主记录不匹配的子表的所有记录。
主表
1. David
2. Fin
3. Lisa
子表
1. 100
1. 200
2. 200
2. 222
8. 100
9. 100
子表需要输出
1. 100
1. 200
2. 200
2. 222
想从子表中删除记录#8 和 9,因为它没有父 ID。
谢谢
您可以在操作中使用外部联接DELETE
:
DELETE a
FROM child a
LEFT JOIN master b ON a.parent_id = b.id
WHERE b.id IS NULL
为避免需要这样做,您应该查看每当您删除父级(主表中的行)时执行的引用 CASCADE操作。
如果您ON DELETE CASCADE
在子表中设置了外键,则任何被删除的父级也将删除其所有相应的“子级”。