我正在表变量中创建菜单和子菜单。 (典型的同表父子记录)
对于所有顶部菜单,ParentID coll 均为空。对于他们的子菜单,ParentID 将是这些父菜单的 MenuId。 (取决于构建的用户日志类型)
现在我要做的是,如果特定父级没有任何子级,我想从该表变量中删除该父级记录。
我知道我可以用光标或逐行操作来实现。我可以用其他方法吗?
最佳答案
如果没有看到你的表结构,很难告诉你你需要的确切查询,但是,如果我正确理解你的问题,你只需要这样做:
DELETE T
FROM MyTable T
WHERE NOT EXISTS(SELECT * FROM MyTable WHERE ParentID = T.MenuID)
AND T.ParentID IS NULL
此查询执行相关子查询来查找所有没有子记录的菜单记录。它使用 SQL 的 EXISTS条款
关于sql - 如果 child 不存在,则删除父记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8169310/