我在表變量中創建菜單和子菜單。 (同一個表中的典型父母子記錄) 對於所有頂層菜單,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