如何在同一数据库表中筛选GUID未出现在ParentGUID中的记录?
筛选符合条件的GUID记录
需要筛选出同时满足以下要求的记录:
- 记录自身的
GUID字段不为空 - 该
GUID的值从未出现在表中任意一条记录的ParentGUID字段内
你的原SQL逻辑有误,NOT EXISTS子句里的条件没有关联外部表的GUID去检查整个ParentGUID集合,无法得到正确结果。正确的写法如下:
SELECT code, GUID, ParentGUID FROM ac00 a WHERE a.GUID IS NOT NULL AND NOT EXISTS ( SELECT 1 FROM ac00 b WHERE b.ParentGUID = a.GUID ) ORDER BY Code ASC
代码说明
a.GUID IS NOT NULL:确保筛选的记录拥有有效的GUID值- 子查询作用:检查表中是否存在任意一条记录的
ParentGUID等于当前记录的GUID,NOT EXISTS则表示不存在匹配项,符合你要筛选的条件
内容的提问来源于stack exchange,提问作者Mailer
相关产品推荐
相关产品推荐

