Salesforce中如何通过SOQL查询Book对象指定记录是否存在子级
解决方案
前提确认
首先需要确认你的Salesforce环境中Book对象父子关联字段的两个API名称:
- 子Book上指向父Book的Lookup字段API名,通常默认是
Parent__c - 该Lookup字段对应的子关系API名,通常默认是
Books__r,如果自定义过可到对象管理器的字段详情页查询实际值
方法1:关联查询子记录(需要获取子记录基础信息时用)
直接在查询父Book的同时关联查询子记录,加LIMIT 1优化性能,避免拉取全量子记录:
SELECT Id, (SELECT Id FROM Books__r LIMIT 1) FROM Book__c WHERE Id = '待查询的Book记录ID'
判断逻辑:查询结果返回后,若Books__r列表的长度大于0,说明该记录存在子级。
方法2:聚合统计(仅判断是否存在时性能最优)
不需要获取子记录内容的场景下,直接用COUNT聚合查询,返回数据量更小,执行速度更快:
SELECT COUNT(Id) childCount FROM Book__c WHERE Parent__c = '待查询的Book记录ID' LIMIT 1
判断逻辑:若返回的childCount数值大于0,说明该记录存在子级。
注意:上述示例中的
Parent__c、Books__r需要替换为你实际环境中的对应API名,否则会执行报错。
内容的提问来源于stack exchange,提问作者SH4444KO
相关产品推荐
相关产品推荐

