我在表变量中创建菜单和子菜单。 (同一个表中的典型父母子记录) 对于所有顶层菜单,ParentID coll为空。对于他们的孩子,ParentID将是这些父菜单的MenuId。 (取决于这是什么样的用户日志构建) 现在我要做的是如果特定的父母没有任何孩子我想从这个表变量删除这个父母recrod。
我知道我可以用游标或按行操作。我能以其他方式做到吗?删除父记录如果孩子不存在
5
A
回答
3
没有看到你的表结构很难告诉你确切的查询你需要,但如果我正确地理解你的问题,你只需要像做这个:
DELETE T
FROM MyTable T
WHERE NOT EXISTS(SELECT * FROM MyTable WHERE ParentID = T.MenuID)
AND T.ParentID IS NULL
该查询执行相关子查询来查找所有没有子记录的菜单记录。它使用SQL的EXISTS条款
1
你可以做这样的事情:
delete from yourtable yt where not exists (select * from yourtable yt2 where yt.id = yt2.parentid) and yt.parentid is null
4
(如使用替代存在)像这样的单个语句应该这样做:
delete p
from
tblMenu p
left join tblMenu c on p.ID = c.ParentID
where
p.ParentID is null --Ensures that the item to delete is at the top
and c.ParentID is null --Finds top level items with no children
相关问题
- 1. SQL:删除父当孩子不存在
- 2. 删除,如果存在记录,如果记录不存在
- 3. 删除父如果孩子空
- 4. 删除父表记录时不删除子记录
- 5. 删除父和子记录
- 6. 如何删除父母和孩子的记录
- 7. 如何删除父记录时删除所有子记录?
- 8. 如何在删除laravel 5中的父记录时不删除子记录?
- 9. 删除父记录时删除子记录
- 10. 删除子记录删除实体中的父记录
- 11. 如果记录存在删除它?
- 12. 休眠:删除父不被孩子
- 13. 如果孩子有记录,选择父母和子女
- 14. 回滚父记录不会删除子记录
- 15. Grails:保存孩子记录失败了已有的父记录
- 16. 防止删除父行,如果它的孩子将在SQLAlchemy的
- 17. 休眠删除父和子记录
- 18. 删除缺少父项的子记录
- 19. NSManagedObjectContext子/父 - 孩子没有删除registeredObjects
- 20. 删除父元素如果子元素不存在元素
- 21. 当父母被删除时删除孩子不起作用
- 22. 如果它有孩子从父母删除href,否则
- 23. 如何防止ActiveRecord :: Observer记录删除从属记录,如果父记录被删除?
- 24. JPA如何删除没有删除孩子的父母?
- 25. 如何删除“子”记录?
- 26. 父母被删除时保留孩子
- 27. Nhibernate删除父模型的孩子 - MVC3
- 28. PyQt4:从其父母中删除孩子
- 29. Grails的级联删除父删除子记录逐一
- 30. 如何在更新父实体时删除旧的子记录
你想这样做,因为维护作业(即一次),或作为经常发生,每当一个孩子被删除? – Oded