如何通过SOQL筛选仅获取特定商机关联的个人账户?
调整SOQL语句获取特定商机关联的个人账户
原语句的问题在于:主查询未添加账户与目标商机的关联条件,仅通过子查询在每个账户下筛选指定商机,这会返回所有符合IsPersonAccount=True的个人账户,而非仅关联目标商机的账户。可以通过以下两种方式调整:
方式一:从商机出发关联查询账户
直接从Opportunity表查询,利用商机的AccountId字段关联对应的个人账户,同时筛选账户类型:
SELECT Id, Name, Account.Id, Account.Name FROM Opportunity WHERE Id = '{pv0}' AND Account.IsPersonAccount = True
这种方式更直接,能一次性获取商机本身及其关联的个人账户信息。
方式二:从账户出发添加关联筛选条件
如果仍要从Account表查询,需在WHERE子句中添加账户与目标商机的关联条件,确保仅返回关联该商机的个人账户:
方法A:使用IN子查询
SELECT Id, Name FROM Account WHERE IsPersonAccount = True AND Id IN (SELECT AccountId FROM Opportunity WHERE Id = '{pv0}')
方法B:使用EXISTS子查询
SELECT Id, Name FROM Account WHERE IsPersonAccount = True AND EXISTS (SELECT Id FROM Opportunities WHERE Id = '{pv0}' AND AccountId = Account.Id)
内容的提问来源于stack exchange,提问作者EmilyStreaks
相关产品推荐
相关产品推荐

